我知道如果你ProcessBuilder.start在Java中使用它来启动一个外部进程,你必须使用它的stdout/stderr(例如见这里).否则外部进程会在启动时挂起.
ProcessBuilder.start
我的问题是为什么它以这种方式工作.我的猜测是JVM将执行过程的stdout/stderr重定向到管道,如果管道没有空间,则对管道的写入阻塞.是否有意义?
现在我想知道为什么 Java会这样做.这个设计背后的理由是什么?
java process processbuilder
java ×1
process ×1
processbuilder ×1