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); }
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!