Rumah  >  Artikel  >  Java  >  Bagaimana untuk Menangkap Output daripada Program Luaran yang Dilaksanakan dengan Parameter Tambahan di Java?

Bagaimana untuk Menangkap Output daripada Program Luaran yang Dilaksanakan dengan Parameter Tambahan di Java?

Barbara Streisand
Barbara Streisandasal
2024-10-26 14:53:30731semak imbas

How to Capture Output from External Programs Executed with Extra Parameters in Java?

Melaksanakan Program Luaran dengan Parameter Tambahan dalam Java

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.

Punca Potensi

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.

Penyelesaian Berfungsi

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>

Penjelasan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn