我们的java程序在退出时返回一个状态代码
System.out.println(statusCode);
System.exit (statuscode);
该值返回到调用 java 类的 shell 脚本 (korn shell)。在脚本中,它通过存储在变量 RETSTATUS 中来获取返回值,如下所示 -
$JAVA_HOME/bin java $SYSTEM_PARAMS -jar myclass.jar
RETSTATUS=$?
echo $RETSTATUS
不知何故,java中打印的值是400(正确的状态代码),但脚本中RETSTATUS的值在echo中是144。知道为什么以及如何解决它吗?感谢您提前提供的任何帮助。
最佳答案
*nix 中的退出代码是短
。当您返回 400
时,返回代码就会溢出(请注意 400-256=144
)。只需返回 255
及以下的合理正数即可。
关于java - 从java返回的整数值在shell脚本中变成不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30769131/