Как запустить программу и немедленно выйти из нее, используя apache commons-exec?
Используя Apache Commons-Exec, я могу успешно запустить программу, однако стартовая программа была приостановлена после запуска программы.
Могу ли я спросить, как запустить программу и немедленно выйти из нее, чтобы она не блокировала последующее выполнение?
DefaultExecutor executor = new DefaultExecutor();
executor.execute( "cmd /c start C:\\Users\\xx\\program.exe");
Я на Win7 64bit.
Спасибо
2 ответа
Решение
Согласно документации, execute(CommandLine)
запускает синхронное выполнение. То есть блокирует вызывающий поток. Вы, вероятно, хотите асинхронное выполнение, поэтому используйте execute(CommandLine command, ExecuteResultHandler handler)
, Например,
DefaultExecutor executor = new DefaultExecutor();
executor.execute(new CommadLine("cmd /c start C:\\Users\\xx\\program.exe"),
new DefaultExecuteResultHandler());
Похоже, вам нужно использовать DefaultExecuteResultHandler.
См. Учебник (внизу) для получения дополнительной информации.