Java 使用Runtime.getrunTime调用exe会在使用wait方法时挂起

Java 使用Runtime.getrunTime调用exe会在使用wait方法时挂起,java,web-services,process,runtime.exec,Java,Web Services,Process,Runtime.exec,我正在使用Runtime.getRunTime()方法调用Java中web服务的exe。如果我在不使用Process.wait()的情况下调用它,那么它工作正常,但是如果我使用wait()方法调用它,那么我的进程将挂起,我必须重新启动Tomcat 有人能告诉我为什么会发生这种情况吗?程序“waitsFor()”会让外部进程完成执行 现在,有可能外部程序正在请求stdout和stderr,您的程序正在阻止它们。这会导致永久等待或所谓的死锁 显示您拥有的、正在运行的和未运行的代码片段会有所帮助。如果

我正在使用
Runtime.getRunTime()
方法调用Java中web服务的exe。如果我在不使用
Process.wait()
的情况下调用它,那么它工作正常,但是如果我使用
wait()
方法调用它,那么我的进程将挂起,我必须重新启动Tomcat

有人能告诉我为什么会发生这种情况吗?

程序“waitsFor()”会让外部进程完成执行


现在,有可能外部程序正在请求stdout和stderr,您的程序正在阻止它们。这会导致永久等待或所谓的死锁

显示您拥有的、正在运行的和未运行的代码片段会有所帮助。如果我使用waitFor(),则进程将无限期等待,并且我必须重新启动tomcat服务器。我的代码片段是:process p=Runtime.getRuntime().exec(“--我从cmd行参数获取的exe路径”)p.waitFor()@matti那可能是因为你的程序陷入了死锁。一个进程正在等待另一个进程退出,而另一个进程正在等待获得“stdout”/“stderr”访问。