2016-05-03 8 views
0

javaからシェルスクリプトを実行するには、以下のコマンドを使用しています。また、スクリプトの実行がエラーなしで成功したかどうかを確認する必要があります。これを行う方法はありますか?お知らせ下さい。javaコードからシェルスクリプトを実行し、実行が成功したかどうかを確認してください

ProcessBuilder pb = new ProcessBuilder("test.sh", arg1, arg2); 
Process p = pb.start(); 
+0

ありがとうございました:)何らかの理由で質問を入力していませんでした。お試しさせてください。 – Karthik

答えて

1

あなたは、プロセスは、プロセスが完了するまで、あなたがProcess.waitFor()どのブロックで行うことができます終了しているかどうかを確認する必要があります。この呼び出しの戻り値は、呼び出されたシステムコマンドの戻りコードです。

+0

ありがとうございました。私はp.waitfor()を使用してp.exitvalue()を取得し、それがゼロかどうかを調べることができますか? – Karthik

+0

p.waitFor()は終了コードを返します。0をチェックすることができます: 'p.waitFor()== 0' - > success – Bernhard

+0

ありがとうございます:) – Karthik

1

非同期に処理するには、スレッドリスナーをProcess.getErrorStreamに接続します(つまり、read()メソッドをlistenします)。プロセスが終了すると、スレッドを解放するIOExceptionが発生します。その後、Process.exitValue()と呼んでください。何かエラーストリームから抜け出してしまったり、Process.exitValue()が== 0でない場合は、そのエラーの可能性を示唆しています

+0

ありがとうございます。 – Karthik

関連する問題