我试图在挂起的Solaris上执行以下命令。
swmml -l /tmp/swmmlLog.txt -n N1 -e DISPLAY-M3UA-LSET;
; swmml-> perl脚本。
我试图冲洗流/关闭流。什么都没用。我尝试同时使用ProcessBBuilder
和Runtime.exec()
,但是没有成功。
我们试图从流中读取数据,但是read方法本身就挂了。
以下代码不打印任何内容。
while (true) {
String s = br.readLine ();
if (s == null) break;
System.out.println (s);
}
最佳答案
您说要刷新和关闭流,但是您是否已完全读取标准输出和标准错误的内容?
一个常见的问题是子进程会阻塞,因为当父Java进程忽略使用其输出时,它的标准错误管道就会填满。