Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Melaksanakan Perintah Shell dengan Amanah dengan Runtime Java?
Memanipulasi Gelagat Shell dalam Java Runtime
Apabila menggunakan utiliti Runtime.exec(String) Java, percanggahan boleh timbul antara melaksanakan arahan shell tertentu. Untuk memahami anomali ini, kita mesti menyelidiki mekanik operasi shell.
Memahami Tanggungjawab Shell
Shells melaksanakan tugas penting yang menyokong pelaksanaan arahan, termasuk:
Punca Pelaksanaan Kegagalan
Arahan yang bergantung kepada Shell mungkin gagal apabila dipanggil melalui Runtime.exec(String) kerana:
Penyelesaian
Mudah Tetapi Tidak Sempurna:
Menggunakan Runtime.exec(String[]) dan menghantar arahan kepada jurubahasa shell membolehkan arahan langsung pelaksanaan:
String myFile = "some filename.txt"; String myCommand = "cp -R '" + myFile + "' $HOME 2> errorlog"; Runtime.getRuntime().exec(new String[] { "bash", "-c", myCommand });
Teguh dan Selamat:
Untuk meningkatkan keselamatan dan keteguhan, kendalikan tanggungjawab shell secara eksplisit menggunakan ProcessBuilder:
String myFile = "some filename.txt"; ProcessBuilder builder = new ProcessBuilder( "cp", "-R", myFile, System.getenv("HOME")); builder.redirectError(ProcessBuilder.Redirect.to(new File("errorlog"))); builder.start();
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Perintah Shell dengan Amanah dengan Runtime Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!