【问题标题】:How to Import Javafx8 in a bundle in OSGI如何在 OSGI 的包中导入 Javafx8
【发布时间】:2015-02-17 16:53:02
【问题描述】:

我正在与 Felix 一起开发一个 OSGI 应用程序。现在我想在一个包中使用一些 JavaFx8 类,但我有以下错误:

Unable to resolve 1.0: missing requirement [1.0] osgi.wiring.package; (osgi.wiring.package=javafx.geometry

如何在我的包中导入 JavaFx8 SDK 包。

提前致谢,

【问题讨论】:

  • 您是想编写一个基于 OSGi 的 JAVAFX GUI,还是只想使用一些实用程序类,例如 javafx.geometry 包中的那些而不启动 GUI 窗口?
  • 我需要创建一个完整的 GUI,并且需要大量导入。

标签: osgi bundle javafx-8


【解决方案1】:

您可以将库添加到 felix 类路径并将必要的包附加到 org.osgi.framework.system.packages.extra 选项。 http://felix.apache.org/site/apache-felix-framework-configuration-properties.html 如果你这样做,捆绑没有。 0 将导出所需的包。我可以稍后在我的电脑上提供更详细的说明,现在我在移动设备上。

【讨论】:

  • 选项 org.osgi.framework.system.packages.extra 在哪个文件中?我正在使用 maven-pax-plugin 创建项目并触发 Felix。
  • 抱歉耽搁了。我在 karaf 3.0.2 中有这个配置:~/apache-karaf-3.0.2/etc/config.properties
【解决方案2】:

我正在与 Felix 一起开发一个 OSGI 应用程序。现在我想用一些 包中的 JavaFx8 类

我需要创建一个完整的 GUI,并且需要大量的 进口。

我已经发布了Drombler FX 的一些早期访问版本,这是一个新的基于 OSGi (Apache Felix) 和 Maven 的 JavaFX 富客户端平台。

作为一个应用程序框架,它确保 JavaFX 和 OSGi 能够正确启动并提供主窗口。

您可以在此处阅读有关 Drombler FX 的更多信息:http://puces-blog.blogspot.ch/search/label/Drombler

有一个Getting Started 页面解释了如何通过几个简单的步骤创建、构建和运行 Drombler FX 示例应用程序。

【讨论】:

  • 我想我必须更清楚。实际上,我正在开发一个 OSGI 应用程序,它只包含一个包,它创建一个带有动画的 JavaFX JFXPanel。其余的都是 Swing 并且已经创建。我只需要让我的包从 JDK 访问 javafx 包,就像它对 Swing 包所做的那样。我正在使用 maven-pax-plugin,所以我不太明白该怎么做。
【解决方案3】:

经过多次研究,我终于解决了这个问题,在项目的 pom.xml 中添加了我需要的包:

<configuration><provision>
        <param>--platform=felix</param>
        <param>--noConsole</param>
        <param>--systemPackages=javafx.animation,javafx.application,javafx.collections,javafx.embed.swing,javafx.geometry,javafx.scene,javafx.scene.layout,javafx.scene.transform,javax.swing,javax.swing.border,org.osgi.framework</param>
      </provision></configuration>

或通过将以下属性添加到同一文件(项目的 pom):

<properties>
<org.osgi.framework.system.packages.extra>javafx.animation,javafx.application,javafx.collections,javafx.embed.swing,javafx.geometry,javafx.scene,javafx.scene.layout,javafx.scene.transform,javax.swing,javax.swing.border,org.osgi.framework
</org.osgi.framework.system.packages.extra>
<org.osgi.service.http.port>8080</org.osgi.service.http.port>
<org.osgi.service.http.port.secure>8443</org.osgi.service.http.port.secure>

对于More information,请查看链接。

【讨论】:

    猜你喜欢
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 2017-01-16
    • 2012-12-12
    • 1970-01-01
    • 2023-03-12
    • 2016-09-15
    相关资源
    最近更新 更多