java - Shell 脚本调用 java 可执行文件并捕获异常

标签 java shell unix java-8

我们有一个 java 可执行文件,可以从命令行运行,例如:

>>java -jar something.jar 

这将由 shell 脚本调用。我们怎样才能让shell脚本检测可执行jar是否抛出了异常?假设如果可执行 jar 没有异常完成,我们希望它返回“true”,如果抛出异常,则返回“false”。这可能吗?

最佳答案

我会一如既往地尝试。如果调用是脚本中的最后一个命令,则脚本无论如何都会执行此操作。否则捕获返回值$?

   java -jar something.jar 
   result=$?

   if [[ $result ]] ; then ... ; fi
   # ...
   exit $result

但是,我不会称其为“用脚本捕获异常”,因为您通常在导致异常的程序中并决定在哪里捕获它,以便您可以优雅地处理它,纠正,重试或在退出之前进行一些清理。这也是您可以在脚本内部做的某种程度的事情,并且应该这样做,甚至可以使用不同的数据或环境重新启动程序,因此这是有争议的。

关于java - Shell 脚本调用 java 可执行文件并捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48616117/

相关文章:

java - 如何更改一个字符串 "Hello"的字体大小并将其显示在控制台中?

bash - 如何汇总字符串中的数字并生成单个汇总字符串

java - 使用 bouncycaSTLe 在 java 中实现用于加密和解密的 gost 28147-89 算法

java - junit:使用 forkMode ="once"时如何避免误报?

bash - 试图将一个字符串拆分为两个变量

c - 我无法使用/proc/{pid}/fd/0 写入标准输入

c - size_t 或 long 表示包含文件的字符串的大小?

bash - 用于有效制表符完成的 Unix 文件命名约定?

java - 使用java流影响一些逻辑列表

linux - 是否可以在 Pharo smalltalk 中编写 shell 命令?