如果引发未检查的Java异常,请停止bash脚本

如果引发未检查的Java异常,请停止bash脚本,java,bash,exception,Java,Bash,Exception,我正在Bash脚本中运行一个java程序。 如果java程序抛出未经检查的异常,我希望停止bash脚本,而不是脚本继续执行下一个命令 如何做到这一点?我的脚本如下所示: #!/bin/bash javac *.java java -ea HelloWorld > HelloWorld.txt mv HelloWorld.txt ./HelloWorldDir 捕获异常,然后调用System.exit。检查shell脚本中的返回代码 #!/bin/bash function fai

我正在Bash脚本中运行一个java程序。 如果java程序抛出未经检查的异常,我希望停止bash脚本,而不是脚本继续执行下一个命令

如何做到这一点?我的脚本如下所示:

#!/bin/bash

javac *.java

java -ea HelloWorld > HelloWorld.txt

mv HelloWorld.txt ./HelloWorldDir

捕获异常,然后调用System.exit。检查shell脚本中的返回代码

#!/bin/bash

function failure()
{
    echo "$@" >&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
以非零退出代码退出,但这很可能是一个未捕获的异常


如果命令失败,基本上退出shell脚本。

与Tom Hawtin达成一致

要在Bash脚本中检查Java程序的退出代码,请执行以下操作:

#!/bin/bash 

javac *.java 

java -ea HelloWorld > HelloWorld.txt 

exitValue=$? 

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

mv HelloWorld.txt ./HelloWorldDir