Dalam program Java anda, anda cuba untuk melaksanakan program luaran ("program.exe") menggunakan Runtime.exec( ) kaedah. Walaupun ia tidak menghasilkan ralat, program ini nampaknya tidak berkesan.
Kod yang disediakan menggunakan kaedah Runtime.exec(params) untuk memulakan atur cara luaran. Walau bagaimanapun, kaedah ini mempunyai had dalam mengendalikan data input dan output antara program Java dan proses luaran.
Untuk berinteraksi secara berkesan dengan program luaran dan mendapatkan semula outputnya, anda boleh menggunakan kelas ProcessBuilder. Berikut ialah contoh yang menunjukkan cara untuk melaksanakan program "program.exe" dengan parameter tertentu:
<code class="java">ProcessBuilder processBuilder = new ProcessBuilder("C:\Users\user\Desktop\program.exe", "C:\Users\user\Desktop\images.jpg", "C:\Users\user\Desktop\images2.txt"); Process process = processBuilder.start(); InputStream inputStream = process.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line; System.out.println("Output of running program.exe with parameters:"); while ((line = bufferedReader.readLine()) != null) { System.out.println(line); }</code>
Dalam kod ini, kami mencipta contoh ProcessBuilder dengan parameter yang diperlukan. Kaedah start() digunakan untuk memulakan program luaran. Kami kemudian menggunakan InputStream untuk membaca output program, menukarnya kepada aksara menggunakan InputStreamReader dan akhirnya menyimpannya dalam BufferedReader untuk pemprosesan baris demi baris yang lebih mudah.
Atas ialah kandungan terperinci Bagaimanakah saya boleh melaksanakan program luaran dengan berkesan dan mendapatkan semula keluarannya dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!