2010-10-05 54 views
0

我正试图在挂起的Solaris上执行下面的命令。java.lang.Process.waitFor()挂起

swmml -l /tmp/swmmlLog.txt -n N1 -e DISPLAY-M3UA-LSET;

; swmml - > perl脚本。

我试图刷新流/关闭流。没有任何工作。我尝试了ProcessBBuilderRuntime.exec()但没有成功。

我们试图从流中读取数据,但读取方法本身就是挂起的。 以下代码不打印任何内容。

while (true) { 
    String s = br.readLine(); 
    if (s == null) break; 
    System.out.println (s); 
} 
+0

发布非功能代码,并记住要正确格式化。 – aioobe 2010-10-05 15:59:08

回答

8

你说你正在冲洗和关闭流,但你完全阅读两个标准输出和标准错误的内容?

一个常见问题是子进程阻塞,因为它的标准错误管道在父进程忽略消耗其输出时填满。