0
我想用java打開一個外部應用程序。使用java與控制檯應用程序交互
Process p = Runtime.getRuntime().exec("/Users/kausar/myApp");
此運行過程,因爲我可以在活動監視器中看到。 現在我運行的文件實際上是控制檯應用程序,然後接受命令並根據這些命令給出響應。 例如,如果我去終端,並把同樣的
Kausars-MacBook-Air:~ kausar$ /Users/kausar/myApp
myApp>
現在我可以給命令到App,例如
myApp> SHOW 'Hi There'
這些都是在控制檯應用程序作爲鍵盤輸入命令,這些都是不是參數。我看到了不同的參數方法。我也嘗試了以下,但無法讓它工作。
String res;
String cmnd = "SHOW \'Hi There\'";
OutputStream stdin = null;
InputStream stdout = null;
stdout = p.getInputStream();
stdin = p.getOutputStream();
stdin.write(cmnd.getBytes());
stdin.flush();
p.waitFor();
BufferedReader input = new BufferedReader(
new InputStreamReader(stdout));
while ((res = input.readLine()) != null) {
System.out.println(res)
}
input.close();
p.destroy();
它與「/ bin/bash -c ls」相同的程序工作正常,但它什麼也沒有顯示。 請幫忙!
您正在將stderr定義爲輸入流並將p.getInptStream分配給stdout。 – Guanxi
@關西糾正了它,那可能是複製粘貼錯誤,謝謝指出它 – kausar