有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JavaFX 8 JVM在退出后保留

我创建了一个JavaFX应用程序,并注意到在我关闭主阶段后,会发生以下情况:

  • 调用应用程序的“停止”方法
  • 主要方法仍在继续
  • 程序离开主方法后,JVM无法关闭

我没有创建任何线程(至少没有明确地创建)。此时正在运行的线程是(从调试控制台):

  • 调用器Dispatcher
  • 棱镜字体处理器
  • “pool-2-thread-1”(我不知道这是什么——ThreadPoolExecutor部件在其堆栈跟踪中)
  • HSQLDB定时器(我在开发/调试系统上使用HSQLDB文件数据库)
  • FX访问线程(可视化调试器)
  • 废弃的连接清理线程

以下哪个线程可以阻止JVM关闭?我认为所有这些都应该是守护线程

这是我的申请代码:

public class MainApp extends Application {

@Override
public void start(Stage stage) throws Exception {       
    final FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/fxml/Main.fxml"));
    Parent root = fxmlLoader.load();

    Scene scene = new Scene(root);
    scene.getStylesheets().add("/styles/Styles.css");

    //... Scene/stage setup here
    stage.show();
}

@Override
public void stop() throws Exception {
    super.stop();
}

public static void main(String[] args) {
    launch(args);
}
}

添加一个系统。出口(0);最后,stop()方法解决了这个问题,但我不确定这是否是解决这个问题的最佳方法。。。 有什么想法吗

提前发送Thx


共 (1) 个答案

  1. # 1 楼答案

    如果你说你正在使用HSQLDB,你不会显示初始化它的代码。在stop()方法中,关闭该连接