我想使用 java 打开一个外部应用程序。
Process p = Runtime.getRuntime().exec("/Users/kausar/myApp");
正如我在活动监视器中看到的那样,这将运行该过程。现在我运行的文件实际上是控制台应用程序,它接收命令并根据这些命令给出响应。例如,如果我去终端并输入相同的
Kausars-MacBook-Air:~ kausar$ /Users/kausar/myApp
myApp>
现在我可以向应用程序发出命令,例如
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”的相同过程可以正常工作。请帮忙!