我正在使用Java在Windows上创建一个进程。我的问题是这个进程无法终止。下面是一个示例程序:
import java.io.IOException;
public class Test {
/**
* @param args
* @throws IOException
* @throws InterruptedException
*/
public static void main(String[] args) throws IOException,
InterruptedException {
Process process = Runtime.getRuntime().exec("cmd /c dir");
process.waitFor();
}
}
由于我无法理解的原因,这个程序从未完成过。如果将“cmd /c dir”替换为ipconfig或其他某些内容,情况也是如此。
我可以使用ProcessExplorer看到java创建了cmd进程。这个示例显然是一个简化版;在我的原始程序中,我发现如果我在一段时间后调用process.destroy()并检查cmd进程的输出,命令会成功执行。
我已经尝试过各种版本的Java 1.5和1.6。我的操作系统是Windows XP Pro,SP 2。