当前位置: 首页 > 知识库问答 >
问题:

将org.pbjar库转换为OSGi bundle后出错

颛孙正卿
2023-03-14

我正在尝试转换org.pbjar。jxlayer库到OSGi捆绑包,我已经成功了,但当我尝试将其安装到Karaf容器中时,该容器声称该捆绑包缺少一个需求:

无法解析312.0:缺少要求[312.1]osgi.wiring。包裹(osgi.wiring.package=com.sun.java.swing)

我也把javax.swing捆绑导入指令,但问题仍然存在我改变了JDK的版本(1.5,1.6,1.7),但没有运气

你能帮我解决这个问题吗?

共有1个答案

耿学义
2023-03-14

因此,您的捆绑包尝试导入com.sun.java。swing包,当框架试图解析包时,它找不到任何导出此包的人。这就是错误消息试图告诉您的。

在Java 7中(我没有检查过旧版本),这个包是JRE的一部分。这意味着向包公开它的最简单的方法是让框架将它作为一个“额外的”包导出。您可以在启动框架时配置一个系统属性来实现这一点:

-Dorg.osgi.framework.system.packages.extra=com.sun.java.swing

另一种选择是将这个包嵌入到您的包中。在这种情况下,您不需要通过框架导出它(这在您无法重新配置您的框架的情况下很方便),并且导入包也可以从您的包中移除。如果您最终有许多需要这样做的包,这可能不太方便或不好,因为您最终会有许多包的私有副本(而不是每个人共享一个)。

 类似资料:
  • 我试图从Scala类创建一个Dll。我正在使用IntelliJ和SBT。我已经找到了一种使用ikvm-converter将.jar文件转换为Dll的方法。现在的问题是:当我在SBT下使用“package”从我的.scala文件中创建一个.jar文件,然后尝试用ikvmc将其转换为Dll时,结果库在集成到C#中时是空的... 向你问好Christoph

  • 问题内容: 我有一个第三方库,主要由大量的静态()库文件组成。我可以将其编译为单个库文件,但我确实需要将其作为单个共享库文件。 有什么方法可以将静态文件转换为共享文件?或更笼统地说,是否有一种将大量静态文件和一些目标文件合并为一个文件的好方法? 问题答案: 是否这样做(当然带有适当的-L) 不是吗

  • 我正试图在OpenGL(C++)中使一个光源跟随鼠标。在world coords中,我的屏幕中心是,我的鼠标中心是(窗口res是1280,720)。我只转换了中心的坐标,但我不知道如何转换其余的坐标。 用于转换中心坐标: 我尝试的另一个转换是 其中x和y是鼠标坐标。 到目前为止,我在网上找到的所有解决方案都不起作用。 有什么想法吗?

  • 我应该将以下内容转换为后缀形式: 我得到了这个答案: 这是正确的吗?如果我使用了错误的后缀形式,那么之后还有很多问题都是不正确的。如果我错了,你能告诉我为什么吗?谢谢你的帮助。

  • 我使用的是openCV 3.1.0(我试过2.4.9,有同样的问题)。我想输出一个HSV mat到JPEG: 问题是,当我使用执行时,我的程序将失败: OpenCV错误:断言失败(scn==3&(dcn==3 dcn==4)&(depth==CV_8U depth==CV_32F)),位于cvtColor文件/home/pi/OpenCV/src/opencv-3.1.0/modules/imgp

  • 问题内容: 我在函数上发现错误,从DatatypeFactory df初始化newInstance()方法后,它显示错误结果,我得到了另一个错误: 我只是将包裹名称从 然后投射: 问题答案: 这是不可能的 投 自到。您需要从一种类型 转换 为另一种类型: