4

Apache Commons-Execを使用することで、プログラムを正常に開始できますが、プログラムの開始後にスタータープログラムが中断されました。

次の実行がブロックされないように、プログラムを開始してすぐに終了する方法を尋ねてもよいですか?

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

私はWin764ビットを使用しています。

ありがとう

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 に答える