2012-04-11 10 views
3

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

答えて

4

ProcessBuilderのstart()メソッドは、APIがhereのプロセスを返すことを明確に示しています。そのプロセスには、プロセスが終了したときに現在のスレッドを起動させるwaitForを含むメソッドが呼び出せます。あなたがする必要があることは、スレッドを開始し、このプロセスにそれを与え、プロセスが終了したとき、またはタイムアウト後にシグナルを出すことだけです。

4

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

関連する問題