【发布时间】:2014-08-18 12:38:17
【问题描述】:
我正在查看与此问题类似的示例。我们有一个 JavaFX 应用程序,它通过以下线程运行一些 GUI 更新:ScheduledExecutorService::scheduleAtFixedRate。
这与其他几个问题类似。我认为最像我的情况的两个是:
然而,我需要解决的问题是关于下一步。我的目标是嵌入式应用程序,没有机会手动终止 JVM 任务或其他简单的答案等。恐怕重新启动是为非常严重的事情保留的。
我们需要确保所有线程都被有序地关闭。我正在寻找某种回调或事件,让我注册一个 clean-up 例程来关闭我的 stuff?
我在想应该在基类 JavaFX javafx.application.Application 中有“something”来做这件事。
Stop 方法是我可能使用的还是我可以注册以便在我的 FXMLController 停止时调用?
目前,当我从 Netbeans 运行我的 JavaFX 应用程序时,JVM 进程仍然存在。这将停止任何进一步的构建脚本并锁定 JAR 文件。 Netbeans 为您提供了终止任务的选项。真正的解决方案是应用程序/JVM 有序、整齐的关闭。
(update) ... 我查看了用于启动 JavaFX 应用程序的 javafx.Application 类。我实现了一个 Stop() 方法。在这里,我确保我调用了 Platform。exit() ...
/////
// @see
// -- http://docs.oracle.com/javafx/2/api/javafx/application/Application.html#stop%28%29
//
public void stop()
{
Platform.exit();
}
这并不能解决从 NetBeans 运行时的问题。有时您需要单击两次停止 [X] 按钮,但是当您使用终止按钮时,进程确实会停止。如果您对进展感兴趣,这将报告为错误:[Bug 245284],有一个小时钟示例来演示该问题。当您关闭窗口时,NetBeans 进程运行面板仍处于“running”状态。您无法构建,因为 JAR 文件已锁定。至少我们知道手动杀死开发程序。
- 欢迎提出建议。 . .
【问题讨论】:
标签: java multithreading javafx-2