需要从eclipse插件代码访问JavaFX

需要从eclipse插件代码访问JavaFX,java,eclipse,javafx,eclipse-plugin,swt,Java,Eclipse,Javafx,Eclipse Plugin,Swt,我试图在eclipse插件的Java8代码中使用JavaFX包。我能够编译它,但在运行时插件无法加载JavaFX类。 看起来,OSGi插件无法从“[JAVA]\jre\lib\ext\”目录加载类,但可以从“[JAVA]\jre\lib\”加载类。对于如何解决该问题的任何建议,我们都表示高度赞赏 **我知道e(fx)clipse或将jfxrt.jar复制到插件类路径会解决这个问题,但我想知道为什么插件无法从JRE的/ext/path加载。如下链接中所述 ,我们执行了以下步骤来解决此问题。 以下是

我试图在eclipse插件的Java8代码中使用JavaFX包。我能够编译它,但在运行时插件无法加载JavaFX类。 看起来,OSGi插件无法从“[JAVA]\jre\lib\ext\”目录加载类,但可以从“[JAVA]\jre\lib\”加载类。对于如何解决该问题的任何建议,我们都表示高度赞赏


**我知道e(fx)clipse或将jfxrt.jar复制到插件类路径会解决这个问题,但我想知道为什么插件无法从JRE的/ext/path加载。

如下链接中所述 ,我们执行了以下步骤来解决此问题。 以下是OSGi配置属性

org.osgi.framework.bundle.parent
-指定用于引导委派的类装入器。可能的值有:boot用于引导类装入器,app用于应用程序类装入器,ext用于扩展类装入器,framework用于框架的类装入器。默认设置是引导

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

因此,加入

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

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

请参见我的理解,但由于我没有JavaFX作为插件,我无法通过manifest.MF中的“导入包”访问JavaFX。在您的
META-INF/manifest.MF
中,它是
捆绑包RequiredExecutionEnvironment
集,如果是,到哪个值?MANIFEST.MF中“Bundle RequiredExecutionEnvironment”的值是JavaSE-1.8。这意味着只能访问由
JavaSE-1.8
配置文件(请参阅)指定的包。有关更多详细信息,请参阅。