java.lang.Process.waitFor()挂起

0 java

我试图在挂起的Solaris上执行下面的命令.

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

; swmml - > perl脚本.

我试图清除流/关闭流.什么都行不通.我试着用两ProcessBBuilderRuntime.exec(),但没有成功.

我们试图从流中读取.但是read方法本身就是悬挂的.以下代码不打印任何内容.

 while (true) {
     String s = br.readLine ();
     if (s == null) break;
     System.out.println (s);
 }
Run Code Online (Sandbox Code Playgroud)

eri*_*son 8

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

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