0
我想写一个小工具,重新启动一定数量的jar,如果它们已被终止。如何知道以“cmd start”开头的进程的状态?
private static void checkAndRestartProcesses() {
for (int i=0; i<processes.size(); i++) {
try {
processes.get(i).exitValue();
processes.remove(i);
} catch (IllegalThreadStateException ex) {
}
}
try {
for (int i=processes.size(); i<Config.NR_PROCESSES; i++) {
ProcessBuilder pb = new ProcessBuilder("cmd", "/c start cmd /c java -jar bla.jar");
Process p = pb.start();
processes.add(p);
}
} catch (IOException ex) {
}
}
的问题是,流程开始“CMD启动”退出之后,他们执行的子过程(因此,不存在IllegalThreadStateException)。 我如何跟踪子进程(无论它们是否被终止)? 或者:如何在不使用“cmd start”的情况下在单独的cmd中启动子进程? 我需要启动的例程在新的cmd中。
非常感谢。
为什么你使用'CMD使用/等待标志在启动/ C开始'的___在这里,而不是''___? – 2012-08-16 22:20:57
我想为每个进程都有一个独立的cmd窗口。 – dotwin 2012-08-16 22:25:50