我正在尝试为我的程序使用监视程序,但如果我使用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窗口中运行。