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 楼答案
如果你说你正在使用HSQLDB,你不会显示初始化它的代码。在stop()方法中,关闭该连接