产生外部编辑 - 这是如何工作的?

时间:2011-05-17 13:55:14

标签: java unix

程序(例如命令行实用程序)产生外部编辑器并读回文件更改的典型设计是什么?许多命令行实用程序都这样做。例如,svn commit启动外部编辑器,以便在没有-c的情况下运行评论。

我考虑过的一些选项是:

  • 轮询临时文件文件,等待时间戳更改,但这只限于一次保存。
  • 向操作系统注册以获得有关临时文件更改的通知,但这将取决于平台,我希望避免这种情况。
  • 监视生成的进程,等待它终止,但我不确定这对于通常具有长期进程的TextMate和TextWrangler等编辑器是如何工作的。
  • 通过stdin和stdout与生成的进程交互,但我不清楚如何/是否可行的细节。

希望解决方案与平台无关。为了记录,我的平台是OS X上的JVM。

P.S。有关此问题的适当标签的建议吗?

1 个答案:

答案 0 :(得分:2)

如果通过Java(Runtime.exec)启动进程,则会返回一个Process对象,该对象具有waitFor()方法,该方法将告诉您进程何时完成。

只需运行vi或nano或其他任何内容,退出后即可阅读该文件。