3

ProcessBuilder.start() コマンドの実行が終了したときにコールバック(または何らかの通知)が必要なJavaコードからシェルコマンドを実行しています。コマンドの実行には10〜15秒かかります。使用できProcessBuilderますか?

4

2 に答える 2

4

はい、可能です。プロセスを呼び出しwaitFor()て、プロセスが返されるのを待ってから、戻り値を分析して、0であることを確認するか、エラーに応答しない場合があります。これは、現在のスレッドを拘束しないように、バックグラウンドスレッドで行われることがよくあります。

于 2012-04-11T00:56:43.043 に答える
4

ProcessBuilderのstart()メソッドは、APIがここにあるプロセスを返すことを明確に示しています。そのプロセスには、プロセスが終了したときに現在のスレッドをウェイクアップするwaitForなど、呼び出すことができるメソッドがあります。あなたがする必要があるのは、スレッドを開始し、それにこのプロセスを与え、プロセスが終了したとき、またはタイムアウト後にそれを通知させることです。

于 2012-04-11T00:58:58.253 に答える