【问题标题】:Run external application until closed运行外部应用程序直到关闭
【发布时间】:2014-06-16 02:27:47
【问题描述】:

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

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

编辑器需要访问运行程序的控制台。它似乎也没有这样做。

【问题讨论】:

  • 要为@tianwei 的评论添加更多信息,exec 返回一个Process 对象。对此调用 waitFor 方法

标签: java console-application


【解决方案1】:

替换为

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

这将暂停当前线程,直到进程完成,标准输入和标准输出通过管道传输到控制终端。

【讨论】:

  • 使用它会立即退出,我认为是因为编辑器无权访问控制台。
  • 好的,我正在用这里的信息修复它:stackoverflow.com/questions/10340788/…
  • 抱歉,忘记了右括号。
猜你喜欢
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
相关资源
最近更新 更多