Java 如何仅退出子程序,而不退出整个VM?

Java 如何仅退出子程序,而不退出整个VM?,java,exit,system.exit,Java,Exit,System.exit,我有一个JavaSwing启动程序来启动另一个类(运行它的主方法)。 每个程序都有一个退出按钮 我使用System.exit(0)当按下此取消按钮时 启动器程序在执行的操作中执行此操作: if (source==carMenuItem) { ta.append("Car launched\n"); TestCar.main(par); } if (source==DialogboxMenuItem) { ta.append("Dialogbox launched\n")

我有一个JavaSwing启动程序来启动另一个类(运行它的主方法)。 每个程序都有一个退出按钮

我使用
System.exit(0)当按下此取消按钮时

启动器程序在执行的操作中执行此操作:

if (source==carMenuItem) {
    ta.append("Car launched\n");
    TestCar.main(par);

}
if (source==DialogboxMenuItem) {
    ta.append("Dialogbox launched\n");            
    DialogBox.main(par);
}        
if (source==LengthConversionMenuItem) {
    ta.append("LengthConversion launched\n");            
    LengthConversion.main(par);           
}
当我按下程序的取消按钮时,它也会关闭我的启动程序。如何避免这种情况?

终止VM,因此初始线程也会终止,只需从main()方法返回即可


查看代码后:并非所有类都应该有main()方法(如果不是独立使用的话)。您应该考虑调用构造函数来创建类的实例,并调用一个未命名为主()的方法。

< p>系统。退出不能。这将终止整个JVM及其内部的所有进程。

或者您可以使用
dispose()
方法代替
System.exit()
:-因为
System.exit()
将终止其自身的整个应用程序

或者您可以将
setVisible()
用作false。

您必须实现及其
窗口事件,例如

另一个选项是正确的

请参阅我的答案。