2

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

4

0 回答 0