我正在尝试为我的程序使用看门狗,但如果我使用 cmd.exe 启动它,它就不起作用。如果进程是本机启动的(没有 cmd.exe),Watchdog 会终止该进程,但如果程序是使用 cmd.exe 启动的,它什么也不做。
工作代码示例:
CommandLine cmd1 = CommandLine.parse("mysql");
ExecuteWatchdog watchdog = new ExecuteWatchdog(3 * 1000); // wait for 3 sec
Executor executor = new DefaultExecutor();
executor.setWatchdog(watchdog);
try {
executor.execute(cmd1);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("DONE!");
将命令更改为此,将永远阻塞线程('mysql' 等待用户输入):
CommandLine cmd1 = CommandLine.parse("cmd /C start /wait cmd.exe /C 'mysql'");
你有什么想法,如何解决这个问题?'mysql' 命令应该在新的 cmd.exe 窗口中运行。