在java中使用流程生成器,但我希望程序在流程完成时等待。
我尝试使用pb.wait((,但它一直在等待。如何等待所有命令执行完毕?
这只是我代码中很小的一部分。
String[] commands = {All my commands go here};
String command = "cmd.exe /c " + String.join(" && ", commands);
ProcessBuilder pb = new ProcessBuilder(command.split(" "));
pb.inheritIO();
try {
pb.start();
try {
pb.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
System.out.println("Error, Could not run.");
e.printStackTrace();
}
}
您调用的wait()
方法没有达到预期效果(查看javadoc了解更多详细信息:https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(长(
您想等待您启动的进程:
Process p = pb.start();
p.waitFor();
参见https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Process.html#waitFor((