Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menangkap dan Mencetak Output daripada Program Baris Perintah Menggunakan Runtime.getRuntime() Java?

Bagaimanakah Saya Boleh Menangkap dan Mencetak Output daripada Program Baris Perintah Menggunakan Runtime.getRuntime() Java?

Patricia Arquette
Lepaskan: 2024-12-21 07:38:09
asal
920 orang telah melayarinya

How Can I Capture and Print Output from Command Line Programs Using Java's Runtime.getRuntime()?

Mendapatkan Output daripada Program Baris Perintah dengan Java Runtime.getRuntime()

Apabila menggunakan Runtime.getRuntime() Java untuk melaksanakan arahan gesaan arahan daripada program anda, anda mungkin menghadapi kesukaran untuk menangkap output arahan pulangan. Mari kita mendalami masalah ini dan temui cara untuk mendapatkan dan mencetak output yang diingini menggunakan kaedah yang mantap.

Dalam pendekatan anda, percubaan untuk mencetak proc objek Proses menggunakan System.out.println() tidak akan menghasilkan apa-apa yang bermakna keputusan. Sebaliknya, anda perlu menyalurkan InputStream daripada arahan yang dilaksanakan kepada BufferedReader untuk mengakses dan seterusnya mencetak output.

Berikut ialah coretan kod yang dikemas kini dan berfungsi sepenuhnya:

Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-get t"};
Process proc = rt.exec(commands);

BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));

// Read the output from the command
System.out.println("Here is the standard output of the command:\n");
String s = null;
while ((s = stdInput.readLine()) != null) {
    System.out.println(s);
}

// Read any errors from the attempted command
System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
    System.out.println(s);
}
Salin selepas log masuk

Dengan menggunakan BufferedReader , anda boleh membaca baris keluaran secara berulang dan memaparkannya dalam program anda. Pendekatan ini menyediakan cara yang bersih dan cekap untuk mengendalikan kedua-dua output standard dan kemungkinan ralat daripada arahan yang dilaksanakan.

Rujuk Javadoc rasmi untuk Runtime.getRuntime() untuk dokumentasi komprehensif dan cerapan tentang pilihan tambahan seperti ProcessBuilder, yang menawarkan kawalan lanjutan ke atas pengendalian proses.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menangkap dan Mencetak Output daripada Program Baris Perintah Menggunakan Runtime.getRuntime() Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan