我创建了一个JavaFX应用程序,并注意到在关闭主阶段后,会发生以下情况:
我不创建任何线程(至少明确没有)。此时运行的线程(来自调试控制台):
哪些线程可以阻止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);
}
}
添加System.exit(0);在stop()方法结束时解决了这个问题,但我不确定这是否是问题的最佳解决方案...... 有什么想法吗?
提前谢谢
答案 0 :(得分:1)
您说您使用的是HSQLDB,但是您没有显示初始化它的代码。在stop()方法中,关闭该连接。