2009-02-25 7 views
4

Je cours un programme java à partir d'un script Bash. Si le programme java renvoie une exception non vérifiée, je souhaite arrêter le script bash au lieu que le script poursuive l'exécution de la commande suivante.Arrêter le script bash s'il n'est pas coché Java Exception est levé

Comment faire? Mon script ressemble à ceci:

#!/bin/bash 

javac *.java 

java -ea HelloWorld > HelloWorld.txt 

mv HelloWorld.txt ./HelloWorldDir 

Répondre

10

Attrape l'exception, puis appelle System.exit. Vérifiez le code de retour dans le script shell.

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" 

vous devez également vous assurer que les java sorties avec un code de sortie non nul, mais c'est tout à fait probable une exception non interceptée.

Quittez fondamentalement le script shell si la commande échoue.

11

En accord avec Tom Hawtin,

Pour vérifier le code de sortie du programme Java, dans le script Bash:

#!/bin/bash 

javac *.java 

java -ea HelloWorld > HelloWorld.txt 

exitValue=$? 

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

mv HelloWorld.txt ./HelloWorldDir