运行外部应用程序直到关闭

时间:2014-06-16 02:27:47

标签: java console-application

我正在编写一个控制台应用程序,它将使用* NIX上的系统编辑器。为此,我编写了一个将字符串写入文件的方法,启动编辑器来更改该文件,然后再次读取该文件。问题是运行编辑器的调用不等待该应用程序关闭。我需要程序等待编辑器完成。

Runtime.getRuntime().exec(editorcmd + " " + tmpfn);

编辑器需要访问正在其中运行程序的控制台。它似乎也没那样做。

1 个答案:

答案 0 :(得分:1)

将其替换为

Runtime.getRuntime().exec(new String[]{"sh", "-c", editorcmd + " " + tmpfn + " >/dev/tty </dev/tty"}).waitFor();

这将暂停当前线程,直到进程完成,stdin和stdout通过管道连接到控制终端。