我有一个小的可执行程序在C中产生大量输出到文件。 当我把这个程序与运行,像这样:运行时执行意外停止
Runtime r = Runtime.getRuntime();
Process p = null;
p = r.exec("./my_program -in input.file -out output.file", null, new File(System.getProperty("java.io.tmpdir")));
当程序产生低输出一切正常,但是当我打电话“* MY-*”具有大的输入就会产生输出量大到output.file,但在这种情况下,我的程序在Java冻结,并没有发生...
我在终端测试“* my_program *”大量输入和一切都好,但是当我打电话给使用Runtime.exec编写Java程序,Java程序冻结。
- 预先感谢
本文有点旧,但仍包含相关信息:[Runtime Exec will not](http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps。 HTML)。另外,你的应用程序是一个Swing应用程序吗?可执行程序是否最终完成? –
Runtime.exec本质上是一个管道连接,您必须准备好处理多个缓冲区信息。这是十几条线路来做正确的。 –
不,我的应用程序是一个Eclipse插件。我不这么认为,因为我使用相同的输入测试了相同的C程序,但是在终端运行并且工作正常... – josecampos