为什么在ProcessBuilder--Java中出现非法ThreadStateException错误?
此代码导致if语句行出现IllegalThreadStateException运行时错误:为什么在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();
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\”
?我遇到了与问题中描述的问题类似的问题。提出的解决方案解决了这个问题。这应标记为正确答案。谢谢