gpt4 book ai didi

java - 如何在不必调用 System.exit() 的情况下终止 JavaFX 平台线程?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:08 24 4
gpt4 key购买 nike

我正在为我们的旗舰应用程序(在工作中)使用 JavaFX 编写一个插件工具。旗舰应用程序有一个使用 Swing 的 Java 客户端,它允许用户执行用 Java 编写的宏,或安装用 Java 编写的插件。

请注意,这些宏/插件可以独立运行,不依赖于 Java 客户端,因此无需将 JavaFX 组件放入 JFXPanel。

我们一直遇到的问题之一是调试的便利性。我们运行使用 JavaFX 的宏或插件,在我们杀死它(使用 stop() 和 Platform.exit() )之后,我们必须完全重启 Flagship App Java 客户端(即 JVM),然后才能重新运行JavaFX 宏/插件,由于整个“应用程序启动不得多次调用”错误。旗舰应用程序加载速度相对较快,但仍需要一两分钟才能完全加载并打开一个新文件(没有打开的文件无法运行宏或插件)。

所以我看到了一些建议 place subsequent calls到 Application.launch() into a runLater call ,或使用 Executor service ,但这些似乎都没有真正满足我的需要,因为平台线程似乎已被终止(JavaFX GUI 正确关闭,线程从运行线程列表中消失)。这几乎就像 JVM 有一个 boolean 值,当您调用 Application.launch() 时它被设置为 true,这样您就无法在不终止 JVM 的情况下重新启动 JavaFX 应用程序。

我需要能够在同一 JVM 上多次运行 JavaFX 应用程序。那有可能吗?

最佳答案

您是否能够使用 Stage 而不是 Application 来定义 JavaFX 宏?如果是这样,该视频会协调关闭显示多个 JavaFX 窗口的主 Swing 应用程序。

https://www.youtube.com/watch?v=1cobvRlRHic

关于java - 如何在不必调用 System.exit() 的情况下终止 JavaFX 平台线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53038530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com