Tag: outputstream processbuilder

Java ProcessBuilder:输入/输出流

我想在java代码中调用外部程序,然后Google告诉我Runtime或ProcessBuilder可以帮助我完成这项工作。 我已经尝试过了,并且出现了java程序无法退出的问题,这意味着子进程和父进程都会永远等待。 他们是悬挂或死锁。 有人告诉我原因是子进程的缓存太小了。 当它试图将数据返回给父进程,但是父进程没有及时读取它时,它们都挂起了。 所以他们建议我分叉一个线程来负责读取子进程的缓存数据。 我这样做就像他们告诉我的那样,但仍有一些问题。 然后我关闭通过方法getOutputStream()获取的输出流。 最后,该计划取得了成功。 但我不知道为什么会这样? 输出流和输入流之间是否存在某种关系?