gpt4 book ai didi

java - 检测从 bash 调用 java 程序何时失败

转载 作者:太空宇宙 更新时间:2023-11-04 09:17:18 25 4
gpt4 key购买 nike

我有一个非常简单的 bash 脚本,它调用一个 java 程序。如果 java 程序运行成功或失败,我需要这个 bash 脚本将输出写入标准输出。

#!/bin/bash
if java -jar java_program.jar arg1 ; then echo "run:yes"
else echo "run:no"
fi

如果我的java程序返回

java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at com.redacted.redacted.AdvancedEncryptionStandard.decrypt(AdvancedEncryptionStandard.java:48) at com.redacted.redacted.App.getStuff(App.java:58) at com.redacted.redacted.App.main(App.java:27)

我的 bash 脚本仍将返回“run:yes”。我假设这是因为就 bash 而言,它调用了脚本并运行了。有没有办法让我欺骗java程序是否真的运行成功?

最佳答案

是的,可以。但是您必须在 java 程序内部使用 System.exit(0) 来完成执行并向 bash 传达一切正常的信息。只需返回 1 而不是 0 即可传达错误。响应将存储在 bash 环境中的 $? 中,以便在 if 中使用。

关于如何在 bash 上使用 $? 结果还有另一个答案:

https://unix.stackexchange.com/questions/22726/how-to-conditionally-do-something-if-a-command-succeeded-or-failed

关于java - 检测从 bash 调用 java 程序何时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58820620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com