如何从代码中关闭java应用程序

Ben*_*Ben 5 java swing windowlistener

如何从代码中关闭java应用程序?

Joã*_*lva 15

你打电话System.exit:

System.exit(0);
Run Code Online (Sandbox Code Playgroud)

  • 您可以通过添加关闭钩子为您的应用程序提供清理的机会:`Runtime.getRuntime().addShutdownHook(myShutdownHook)` (6认同)

pas*_*sha 5

我相信在大多数标准中,System.exit()是一种不是OOP关闭应用程序的方式,我总是被告知正确的方法是从main返回.这有点痛苦,需要一个好的设计,但我相信它是"正确的"退出方式

  • 我相信这个想法是你应该手动解开调用堆栈.关闭你的程序并不缺乏可怕的方法,如果你真的想要,你可以弥补异常并抛出它让你的程序崩溃,这将有效地退出但不是那么漂亮.我觉得做除了手动解开之外的其他事情类似于使用goto,这可能会或可能不会让你被猛禽吃掉 (2认同)
  • 当我们涉及线程时,我确实可以看到使用exit()的问题.但是,然后从main返回通过不停止程序优雅地解决这些问题,或者如果它们是守护程序线程则具有完全相同的问题.shutdownhooks + system.exit在我看来是最简单的工作解决方案,可以真正可靠地退出程序(swing解决方案在后台afaik调用system.exit). (2认同)
  • 如果存在其他实时(非守护程序)线程,则"从最终返回"方法将不会停止应用程序. (2认同)