gpt4 book ai didi

java - 每次获取 shell 脚本 255 的退出值

转载 作者:搜寻专家 更新时间:2023-10-31 20:23:11 24 4
gpt4 key购买 nike

我有一个 jar 说 test.jar 有 TestJar 作为它的主要类,一个 shell 脚本 jar_executor.sh,和一个 java 文件。如果我们将 1 作为参数传递,我的 test.jar 将返回 1,如果我们传递任何其他值,则返回 2。我的 shell 脚本正在执行 test.jar,如下所示

#!/usr/bin/ksh
java TestJar 1 -cp test.jar
return_code=$?
exit $return_code

在 java 文件中,我正在创建一个进程并执行 shell 脚本,并使用以下代码获取其退出值

Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(sh jar_executor.sh);
int exitVal = process.waitFor();
System.out.println(exitVal);

这个 exitVal 变量应该根据我们传递的参数打印 1 或 2,但它每次都打印 255。如果我在 shell 脚本中使用 echo $return_code,那么我会得到正确的值。请帮助我,为什么我通过 exit 获得值 255。提前致谢!!!

最佳答案

255 或 -1 是应用程序定义的退出代码,您必须阅读代码才能知道它的含义。

正常退出的 Java 应用程序返回 0,如果抛出异常,则返回 1。

关于java - 每次获取 shell 脚本 255 的退出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6384565/

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