有一个 Java 类创建一个 POST 请求并将其发送到一个 servlet。 类文件(test)的主要方法如下所示:
public static void main(String[] args) throws IOException {
// Code logic goes here...
// No return Statement
}
这是从 KornShell (ksh) 脚本中调用的,如下所示:
retcode=`$CLK_JAVA_PATH -cp $CLASSPATH test ${PASSWORD} ${HOSTNAME} ${TOOLSET}`
if [ $? != "0" ];then
echo "ERROR:
echo "${retcode}"
else
echo "${SCRIPT} Success"
fi
retcode
始终具有值“2”,与代码失败或成功无关。
我的问题是,既然我的 main 方法的返回类型是“void”,为什么代码会返回一些值?
最佳答案
Java 应用程序的返回值不是它的 main
方法的返回值,因为 Java 应用程序不一定在它是 main< 时结束
方法已完成执行。
当没有更多的非守护线程在运行或System.exit()
时,JVM 会结束。被调用。
而System.exit()
也是唯一指定返回值的方式:传递给System.exit()
的参数会作为返回值大多数操作系统上的 JVM 进程。
所以用这个结束你的 main()
方法:
System.exit(0);
将确保两件事:
- 当
main
结束时,您的 Java 应用程序真正退出,并且 - JVM进程的返回值为0
关于java - 从 Java 代码返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6775802/