Mon*_*eet 19 java unix shell scripting ksh
有一个Java类,它创建一个POST请求并将其发送到servlet.类文件(test)的主要方法如下所示:
public static void main(String[] args) throws IOException {
// Code logic goes here...
// No return Statement
}
Run Code Online (Sandbox Code Playgroud)
这是从KornShell(ksh)脚本中调用的,如下所示:
retcode=`$CLK_JAVA_PATH -cp $CLASSPATH test ${PASSWORD} ${HOSTNAME} ${TOOLSET}`
if [ $? != "0" ];then
echo "ERROR:
echo "${retcode}"
else
echo "${SCRIPT} Success"
fi
Run Code Online (Sandbox Code Playgroud)
retcode如果代码失败或成功,则始终具有值"2".我的问题是,因为我的main方法的返回类型是"void",为什么代码返回一些值?
Joa*_*uer 42
Java应用程序的返回值不是它的main方法的返回值,因为Java应用程序不一定在它的main方法完成执行时结束.
相反,当没有更多非守护程序线程正在运行或何时System.exit()被调用时,JVM结束.
并且System.exit()也是指定返回值的唯一方法:传递给的参数System.exit()将用作大多数操作系统上JVM进程的返回值.
所以main()用这个结束你的方法:
System.exit(0);
Run Code Online (Sandbox Code Playgroud)
将确保两件事:
main到达目的地时,您的Java应用程序确实退出了Jes*_*per 17
Java程序不会通过返回一个值将退出代码返回给操作系统main,如在C和C++中所做的那样.您可以通过调用退出程序并指定退出代码System.exit(code);,例如:
// Returns exit code 2 to the operating system
System.exit(2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25247 次 |
| 最近记录: |