0

我有一些代码proc = Runtime.getRuntime().exec(cmd)被调用来启动一个子进程,然后在父进程和子进程之间进行了一些通信。在某些情况下,我java.io.IOException: The pipe is being closed在调用 write() 和 flush() 从父母到孩子。这种情况有时会发生,但不是每次都发生。

我的假设是子进程正在启动(因此proc.getInput/OutputStream()可以工作),但父进程正试图在子进程完全运行/执行之前写入子进程。这看起来有道理吗?我对 JVM 没有足够的深入经验,无法真正感到自信。目前我的解决方案是让子进程写入父进程,通知它它已启动并正在运行;这工作得很好,但如果对它更有信心的话会很好。

如果有更多代码细节或需要什么,我很乐意提供。

谢谢!

4

0 回答 0