需要从eclipse插件代码访问JavaFX

时间:2018-09-11 18:27:39

标签: 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的路径。

1 个答案:

答案 0 :(得分:2)

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

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

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

因此添加

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

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