java - Eclipse:设置 org.osgi.framework.system.packages.extra 以在 osgi 类加载器中包含 javafx 不起作用

标签 java eclipse maven javafx osgi

OSGI 和 JavaFX

OSGI 系统类加载器中不存在 JavaFX。

这就是为什么您无法访问 OSGI 包内的 JavaFX 类。

通常,您可以通过将org.osgi.framework.system.packages.extra传递给osgi实现来包含JavaFX包来避免这种情况。

我的问题

在我的 JavaFX 和 OSGI 应用程序中,我使用 pax runner 来构建 osgi 包。 JavaFX 包 gets added to the extra package property并且在 pax runner JavaFX 中运行良好。

在我的 Eclipse 安装中,我使用 e(fx)clipse 插件来让 Eclipse 保持沉默,提示缺少 javafx 导入。

现在我尝试在 Eclipse 启动配置中传递 org.osgi.framework.system.packages.extra 属性来在 Eclipse 中调试我的应用程序。

但是 Eclipse 不接受我的参数传递,并且会忽略 org.osgi.framework.system.packages.extra 并在我将所有必需的 javafx 包传递给它时抛出 java.lang.NoClassDefFoundError

这是my Launch config .

一个简单的调试输出(System.out.println(System.getProperty("org.osgi.framework.system.packages.extra")))显示该属性已加载,但似乎 equinox 忽略了它。

最佳答案

Equinox 会跳过 extclassloader,您需要使用 -Dorg.osgi.framework.bundle.parent=ext 对其进行配置,或者更轻松地使用 efxclipse 的运行时包 - 查看我们的教程并在我们的论坛中提出更多问题

关于java - Eclipse:设置 org.osgi.framework.system.packages.extra 以在 osgi 类加载器中包含 javafx 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27650045/

相关文章:

java - StackOverflowError with BigInteger 用于计算 C(n,r)

java - 帮助理解多维数组

java - Doxygen 排除 getter 和 setter

Maven 多模块项目,不解决依赖关系

java - JNA如何在Java中使用这个方法?

java - 如何在 Eclipse 中制作自定义编译器警告?

java - 更改生成的代码或使用继承?

java - 无法将最近移动的项目导入 Eclipse

maven - Onejar,与 Maven,不会将资源复制到 jar

maven - 在属性文件中设置 Maven 依赖版本