如何检查JAVA程序是否在shell脚本中成功执行



我正在从shell脚本运行java程序。我需要在相同的shell脚本中执行下一步,这取决于java程序中是否发生了任何异常或运行成功。我知道java什么都不运行。我们如何在shell脚本中实现它?我知道我们可以在日志中打印一些字符串,并对其进行grep以检查状态。有更好的方法吗?即使我能用grep找到一些优雅的方法,这也很好。

如果Java程序因异常而终止,JVM将以错误状态1退出,而不是通常的成功状态0。例如,此程序因NullPointerException而退出:

shell$ cat Throw.java
public class Throw {
public static void main(String[] args) {
String s = null;
System.out.println(s.length());
}
}
shell$ java Throw 2>/dev/null; echo $?
1

例如,您可以在shell if语句中使用退出状态。这将打印boo:

if java Throw 2>/dev/null ; then
echo woo
else
echo boo
fi

如果要设置1以外的退出代码,请使用System.exit(int status)函数。

相关内容

最新更新