【发布时间】:2010-10-19 11:42:36
【问题描述】:
我正在通过以下方式从 Java 代码启动一个 Windows 进程(用 C++ 编写,但我没有源代码):
Process p1 = Runtime.getRuntime().exec(cmdAndParams);
p1.waitFor();
我的问题是 waitFor() 方法永远不会结束。因此,我尝试在一个简单的 shell 中启动该进程,并以 shell 中的许多打印正确结束(我猜是标准输出)。
因此我决定创建并启动一个线程来读取标准输出,即使我现在不需要这些输出。这解决了问题。
所以我的问题是以下问题:此解决方案是“启动并等待具有输出的外部进程的 Java 标准”还是意味着本机进程的某处存在问题?如果存在这样的问题,那么问题的根源可能是什么 C++ 编程“错误”?
【问题讨论】: