java - 需要从 eclipse 插件代码访问 JavaFX

标签 java eclipse javafx eclipse-plugin swt

我正在尝试在 Eclipse 插件的 Java 8 代码中使用 JavaFX 包。我能够编译它,但在运行时插件无法加载 JavaFX 类。 看起来,OSGi 插件无法从“[JAVA]\jre\lib\ext\”目录加载类,但可以从“[JAVA]\jre\lib\”加载类。非常感谢任何有关如何解决该问题的指示。

** 我知道有一种方法可以关闭 e(fx)clipse 或将 jfxrt.jar 复制到插件类路径可以解决该问题,但我想知道为什么插件无法从/ext/JRE 的路径。

最佳答案

如以下链接所述 Unresolved JavaFX packages in OSGi Felix Application ,我们执行了以下步骤来解决该问题。 以下是 OSGi 配置属性。

org.osgi.framework.bundle.parent - 指定用于启动委派的类加载器。可能的值有: boot 为引导类加载器,app 为应用程序类加载器,ext 为扩展类加载器,framework 为框架的类加载器。默认为启动。

org.osgi.framework.system.packages - 指定应通过系统 bundle 从框架类加载器导出的以逗号分隔的包列表。框架会将其设置为合理的默认值。如果指定了该值,它将替换任何默认值。

所以通过添加

-Dorg.osgi.framework.bundle.parent=ext  
-Dorg.osgi.framework.system.packages.extra=javafx.* 

VM 参数,它添加了所需的依赖项。

关于java - 需要从 eclipse 插件代码访问 JavaFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52282100/

相关文章:

java - Java 中的 copyValueOf?

r - (R) 自动计算优化的 Arima(p, d , q) 值

java - eclipse 错误 : 'Selection does not contain a main type/an applet'

java eclipse自动格式化大括号缩进

java - 如何使用 ControlsFX 实现 AutoComplete TextField

java - Java Netbeans 程序中的不同结果

java - java中的AES加密和使用CryptoJS的javascript解密

java - Mp3 播放器 JavaFX

c - fflush(stdout) 问题;

java - 打开新舞台窗口时的应用程序 "freeze"