我如何与Runtime.getRuntime()。exec(命令)程序交互?

时间:2015-02-25 12:00:37

标签: java input command runtime

我正在使用Runtime.getRuntime()。exec(command)从控制台执行某些程序。

如果程序是有限的(只完成一些任务并输出信息然后关闭)一切都很好。我可以执行该程序,然后继续我的java程序。

我的问题是程序在用户输入之前没有完成。然后我不知道如何与它互动。

例如,我在java中有一个名为a.jar的程序,主要代码如下:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line = "";

   while (line.equals("q") == false) {
       line = in.readLine();
    }

现在,如果我想从另一个java程序运行它

   Process p = Runtime.getRuntime().exec("java -jar q.jar");
   System.out.println("Program terminated");

它永远不会显示程序终止消息。有什么建议可以解决这个问题吗?

我希望我已经解释过了,谢谢

1 个答案:

答案 0 :(得分:0)

使用以下语句(waitFor方法)完成命令执行。

  p.waitFor();
  System.out.println("Program terminated");