4

通过使用 Apache Commons-Exec 我可以成功启动程序,但是启动程序在程序启动后暂停。

请问如何启动一个程序并立即退出,这样才不会阻塞后面的执行?

DefaultExecutor executor = new DefaultExecutor();
executor.execute( "cmd /c start C:\\Users\\xx\\program.exe");

我在Win7 64位。

谢谢

4

2 回答 2

4

根据文档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());
于 2012-11-28T10:17:02.207 回答
2

听起来您需要使用DefaultExecuteResultHandler

有关更多信息,请参阅教程(底部)。

于 2012-11-28T10:15:33.350 回答