2009-02-25 10 views
4

私はBashスクリプトからJavaプログラムを実行しています。 Javaプログラムがチェックされていない例外をスローした場合、次のコマンドの実行を続行するスクリプトではなく、bashスクリプトを停止します。Javaチェックアウトがチェックされていないとbashスクリプトを停止する

これを行う方法?私のスクリプトは次のようになります。

#!/bin/bash 

javac *.java 

java -ea HelloWorld > HelloWorld.txt 

mv HelloWorld.txt ./HelloWorldDir 

答えて

10

例外をキャッチし、System.exitを呼び出します。シェルスクリプトの戻りコードを確認してください。

3
#!/bin/bash 

function failure() 
{ 
    echo "[email protected]" >&2 
    exit 1 
} 

javac *.java || failure "Failed to compile" 

java -ea HelloWorld > HelloWorld.txt || failure "Failed to run" 

mv HelloWorld.txt ./HelloWorldDir || failure "Failed to move" 

また、あなたは、ゼロ以外の終了コードとそのjava終了を確認する必要があり、それは捕捉されない例外のために非常に可能性があります。

コマンドが失敗した場合、シェルスクリプトを基本的に終了します。 bashスクリプト内では、Javaプログラムの終了コードを確認するにはトム・ホーティン、

と一致して

11

#!/bin/bash 

javac *.java 

java -ea HelloWorld > HelloWorld.txt 

exitValue=$? 

if [ $exitValue != 0 ] 
then 
exit $exitValue 
fi 

mv HelloWorld.txt ./HelloWorldDir 
関連する問題