【问题标题】:Error while creating bundle from Jar从 Jar 创建包时出错
【发布时间】:2018-11-11 04:53:21
【问题描述】:

我正在使用命令 jar cvfm test5.jar manifest.txt IngrianNAE-8.4.2.000.p02.jar 将 jar 转换为 OSGI 包。 当我在清单文件中添加“Export-Package”时,未创建捆绑包,并且出现以下错误:

java.io.IOException: invalid header field
        at java.util.jar.Attributes.read(Attributes.java:410)
        at java.util.jar.Manifest.read(Manifest.java:199)
        at java.util.jar.Manifest.<init>(Manifest.java:69)
        at sun.tools.jar.Main.run(Main.java:176)
        at sun.tools.jar.Main.main(Main.java:1288)

如果我删除 Export-Package 或将其标记放在清单文件的末尾,则会创建捆绑包,但在 AEM 上部署它时,Export-Packages 在创建的捆绑包中不可见。使用以下清单文件:Manifest-Version: 1.0

Bnd-LastModified: 1527751846288
Build-Jdk: 1.8.0_161
Built-By: 312847
Bundle-Description: Test
Bundle-ManifestVersion: 2
Bundle-Name: Test Bundle
Bundle-SymbolicName: test
Bundle-Version: 1.1.1.4
Export-Package: com.ingrian.security.nae
Created-By: Apache Maven Bundle Plugin

【问题讨论】:

    标签: jar osgi aem manifest.mf


    【解决方案1】:

    如果您使用 Intellij Ultimate 2020.1: 我在 Settings->Plugins

    中禁用了所有 osgi 插件

    【讨论】:

      【解决方案2】:

      您错过了 manifest.mf 文件中的 Bundle-ClassPath: .,test5.jar 条目。这实际上将原始 jar 按原样嵌入到创建的包中,从而使导出包可用。

      还要确保com.ingrian.security.naetest5.jar 中可用的有效包。

      有关如何从 jar 文件 here 创建捆绑包的详细信息,您可以找到有关如何构造清单文件 here 的信息。

      【讨论】:

        猜你喜欢
        • 2018-09-01
        • 1970-01-01
        • 2014-11-20
        • 2011-09-19
        • 2017-01-24
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        • 2021-11-23
        相关资源
        最近更新 更多