对于C / C ++,main()必须始终返回一个整数(零表示成功,非零表示失败)。我可以理解,因为程序正在运行,它成为一个进程,并且每个进程都应该具有退出状态,这是通过执行echo $?获得的。该过程结束后从外壳程序中删除。
现在我不明白为什么main方法在Java中不返回任何内容?它与程序在JVM上运行并且JVM进程可用于返回退出状态有关吗?
请澄清。
谢谢你,
罗杰
如果单线程Java应用程序的main方法终止,则该应用程序将以退出代码0终止。如果您需要另一个退出代码(可能表示错误),则可以放置
System.exit(yourNumberHere);
代码中的任何位置(尤其是在main方法之外)。
这与多线程应用程序不同,在多线程应用程序中 ,您要么必须 System.exit
从内部 使用 kill -9
外部就停止JVM。
这是一个简单的示例,其中终止main不会停止应用程序(典型的服务或守护程序行为):
public static void main(String args[]) {
Thread iWillSurvive = new Thread(new Runnable() {
public void run() {
while(true) {
// heat the CPU
}
}
});
iWillSurvive.start();
}
备注:当然,线程将在其run方法(或在主线程的情况下为main方法)终止时终止。在这种情况下,当所有线程都终止时,JVM将以退出代码0终止(这使我们回到了最初的问题)。希望大家现在都开心。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句