通过使用Apache Commons-Exec,我可以成功启动程序,但是在程序启动后启动程序暂停。
我可以问一下如何启动一个程序并立即退出,这样就不会阻止以下执行吗?
DefaultExecutor executor = new DefaultExecutor();
executor.execute( "cmd /c start C:\\Users\\xx\\program.exe");
我在Win7 64bit上。
由于
答案 0 :(得分:3)
根据documentation,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());
答案 1 :(得分:2)
听起来你需要使用DefaultExecuteResultHandler。
有关详细信息,请参阅tutorial(底部)。