我们的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。知道为什么以及如何解决它?感谢您提前提供任何帮助。
答案 0 :(得分:5)
* nix中的退出代码为short
s。当您返回400
时,您会溢出返回码(请注意400-256=144
)。只需返回255
及以下的合理正数,您就可以了。