从java返回的整数值在shell脚本中变为不同的值

时间:2015-06-10 23:36:45

标签: java shell return-code

我们的java程序通过执行

在exit处返回状态代码
System.out.println(statusCode);

System.exit (statuscode);

该值返回到shell脚本(korn shell),在那里调用java类。在脚本中,它通过存储在变量RETSTATUS中获取返回值,如下所示 -

$JAVA_HOME/bin java $SYSTEM_PARAMS -jar myclass.jar

RETSTATUS=$?

echo $RETSTATUS

以某种方式,java中打印的值为400(正确的状态代码),但脚本中的RETSTATUS值为echo中的144。知道为什么以及如何解决它?感谢您提前提供任何帮助。

1 个答案:

答案 0 :(得分:5)

* nix中的退出代码为short s。当您返回400时,您会溢出返回码(请注意400-256=144)。只需返回255及以下的合理正数,您就可以了。