Как запустить программу и немедленно выйти из нее, используя 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.

См. Учебник (внизу) для получения дополнительной информации.

Другие вопросы по тегам