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