我知道使用System.exit(0)可以结束一个java程序,例如,如果我有一个JFrame窗口,它将关闭并结束程序,但我想知道有多少其他方法,它可以关闭和程序结束了?包括何时发生错误,是否会关闭程序并关闭JFrame?
答案 0 :(得分:4)
要添加其他答案:
答案 1 :(得分:3)
当最后一个没有守护程序标志的Thread结束,或者当你调用一个关闭虚拟机的方法(System.exit(),Runtime.exit(),Runtime.halt()和可能的一些时,Java程序结束更多)。
其他任何东西都取决于调用System.exit()的库(例如带有EXIT_ON_CLOSE的JFrame)。
答案 2 :(得分:2)
这就是我能想到的全部内容:
main()返回(值或void()main完成执行其最后一个语句)
程序抛出未捕获的异常
System.exit(int)的
它会崩溃吗?
在你关闭JFrame的情况下,我相信会有一个onClose()处理程序调用System.exit(0)或导致main方法返回。
答案 3 :(得分:1)
Java程序结束的另一种方式是执行java代码中的最后一个语句。 此外,当发生java.lang.OutOfMemory错误时,程序异常终止。当Java虚拟机无法分配对象时会发生这种情况,因为它没有内存,并且垃圾收集器不能再提供任何内存。
答案 4 :(得分:0)
在您提到JFrame
时,我已经在Swing GUI的上下文中回答了您的问题。
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
否则,当您关闭框架时,框架将被隐藏,但应用程序将继续运行。
答案 5 :(得分:0)
您可以在外部结束正在运行的Java程序。通过从任务管理器中杀死java.exe进程(如果是windows)
答案 6 :(得分:-1)
您也可以使用Application.exit()。