Saya menggunakan runtime untuk menjalankan perintah command prompt dari program Java saya. Namun, saya tidak tahu bagaimana saya bisa mendapatkan output yang dikembalikan oleh perintah.
Ini kode saya:
Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-send" , argument};
Process proc = rt.exec(commands);
Saya mencoba melakukan System.out.println(proc);
tetapi itu tidak mengembalikan apa pun. Eksekusi perintah itu harus mengembalikan dua angka yang dipisahkan oleh tanda titik koma. Bagaimana saya bisa mendapatkan ini dalam variabel untuk dicetak?
Ini kode yang saya gunakan sekarang:
String[] commands = {"system.exe", "-get t"};
Process proc = rt.exec(commands);
InputStream stdIn = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdIn);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<OUTPUT>");
while ((line = br.readLine()) != null)
System.out.println(line);
System.out.println("</OUTPUT>");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
Tapi saya tidak mendapatkan apa pun sebagai output saya, tetapi ketika saya menjalankan sendiri perintah itu berfungsi dengan baik.
pwd && ls
tidak hanya mengeksekusi satu file, ketika Anda melakukannya dalam sebuah shell, ia mengeksekusi file/bin/pwd
dan/bin/ls
executable. Jika Anda ingin melakukan hal-hal seperti itu dalam java Anda harus melakukan sesuatu seperti{"/bin/bash","-c", "pwd && ls"}
. Anda mungkin tidak memiliki pertanyaan lagi tetapi orang lain mungkin jadi saya pikir saya akan menjawabnya.