Apabila cuba untuk melaksanakan program luaran daripada aplikasi Java dan menghantar parameter kepadanya, anda mungkin menghadapi situasi di mana program berjalan tanpa sebarang ralat tetapi gagal melaksanakan tindakan yang dimaksudkan.
Dalam kod contoh yang anda berikan, anda menggunakan kaedah Runtime.getRuntime().exec() untuk melaksanakan program luar. Kaedah ini mengambil tatasusunan rentetan sebagai hujahnya, di mana elemen pertama ialah arahan untuk dilaksanakan dan elemen seterusnya ialah hujah untuk dihantar kepada arahan.
Isu dalam kod anda ialah anda tidak menangkap output program luaran dengan betul. Untuk mendapatkan output dan menyemak tingkah laku program, anda boleh menggunakan kod yang diubah suai berikut:
<code class="java">Process process = new ProcessBuilder( "C:\Users\user\Desktop\program.exe", "C:\Users\user\Desktop\images.jpg", "C:\Users\user\Desktop\images2.txt" ) .start(); InputStream is = process.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line; System.out.printf("Output of running %s is:", Arrays.toString(params)); while ((line = br.readLine()) != null) { System.out.println(line); }</code>
Dalam kod ini, kami menggunakan kelas ProcessBuilder untuk mencipta proses baharu yang akan melaksanakan program luaran. Kaedah start() kemudiannya digunakan untuk memulakan proses.
Untuk menangkap output proses, kami mencipta InputStream daripada proses, InputStreamReader untuk membalut InputStream dan BufferedReader untuk membaca baris daripada InputStreamReader.
Kami kemudian menggunakan kaedah readLine() daripada BufferedReader untuk membaca setiap baris output daripada proses. Akhir sekali, baris keluaran dicetak menggunakan pernyataan System.out.println().
Dengan menggunakan pendekatan ini, anda boleh melaksanakan atur cara luar daripada Java dan menangkap keluarannya, termasuk sebarang ralat atau mesej yang mungkin dihasilkannya . Anda kemudiannya boleh menggunakan output ini untuk memproses atau memaparkan keputusan selanjutnya.
Atas ialah kandungan terperinci Bagaimana untuk Menangkap Output daripada Program Luaran yang Dilaksanakan dengan Parameter Tambahan di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!