正确结束Java命令行应用程序

时间:2010-09-17 08:50:42

标签: java garbage-collection conventions

我只是想知道。我是否需要在Java命令行应用程序的System.exit(0);方法结束之前调用main?如果是这样,为什么?如果我只是总是放在那里0,让它自己退出有什么区别?什么没有清理?

提前致谢。

2 个答案:

答案 0 :(得分:16)

没有!您并不总是需要调用System.exit(0)来结束java程序。如果您的代码没有生成非守护程序线程,则应用程序将在完成主线程任务后自动终止。

如果你的main方法导致产生一些非守护进程线程,这些线程在你的main方法到达结束时还在进行某些处理,那么在这些线程完成之前,应用程序将不会被终止。在这种情况下,如果您明确调用System.exit(0),则应用程序将立即终止并终止所有线程。

请参阅提及详情的javadoc of Thread

答案 1 :(得分:2)

无需致电System.exit(),只需从main()返回即可。这是退出Java程序的正常习惯用法。

通常会调用

System.exit()来终止应用程序(这通常意味着由于致命错误导致异常终止)。