为什么在ProcessBuilder--Java中出现非法ThreadStateException错误?

为什么在ProcessBuilder--Java中出现非法ThreadStateException错误?,java,process,processbuilder,exit-code,Java,Process,Processbuilder,Exit Code,此代码导致if语句行出现IllegalThreadStateException运行时错误: public static void main(String args[]) throws IOException, InterruptedException { Runtime runtime = Runtime.getRuntime(); Process proc = new ProcessBuilder("\"c:\\[directory]/doer.exe\"").start();

此代码导致if语句行出现IllegalThreadStateException运行时错误:

public static void main(String args[]) throws IOException, InterruptedException {
    Runtime runtime = Runtime.getRuntime();
    Process proc = new ProcessBuilder("\"c:\\[directory]/doer.exe\"").start();
    if(proc.exitValue() == 1)
        System.out.println("Output: 1");
}
本应运行的可执行文件的退出代码为1。我做错了什么以及如何修复它?

流程的javadoc#exitValue描述了它抛出异常的原因:

抛出:IllegalThreadStateException-如果此流程对象表示的子流程尚未终止


在if语句之前使用
proc.waitFor()
等待进程完成。

是否希望
“\”c:\\\[directory]\\doer.exe\”
?我遇到了与问题中描述的问题类似的问题。提出的解决方案解决了这个问题。这应标记为正确答案。谢谢