You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Jar转为OSGI Bundle时Export-Package配置异常问题求助

解决OSGI Bundle打包时Export-Package字段报错及不识别问题

你遇到的问题核心是Manifest文件格式不符合Java解析规范,我们一步步拆解解决:

1. 定位错误根源

你提供的Manifest里多个属性挤在了同一行,比如:

Bnd-LastModified: 1527751846288 Build-Jdk: 1.8.0_161 Built-By: 312847

Java的Manifest解析器要求每个Key: Value必须单独占一行,这种多属性混排的写法会被判定为无效头字段,直接触发invalid header field报错。而当你把Export-Package移到末尾时,虽然能勉强打包,但前面的格式错误已经破坏了整个Manifest的结构,导致AEM无法正确识别OSGI配置。

2. 修复Manifest格式

把所有属性拆分成独立行,确保每个Key: Value单独占据一行,正确的Manifest内容应该是这样的:

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

注意:

  • 每个属性单独成行,不要有任何属性混排
  • 行尾不要留多余空格或特殊字符
  • Export-Package可以放在任意位置,只要格式正确就不会报错

3. 重新打包验证

用你原来的命令重新执行打包:

jar cvfm test5.jar manifest.txt IngrianNAE-8.4.2.000.p02.jar

这次不会再出现格式错误,打包成功后部署到AEM,Export-Package配置就能被正确识别了。

4. 更省心的打包方式(推荐)

手动维护Manifest很容易踩格式坑,建议用专门的OSGI打包工具:

  • 如果用Maven,直接使用maven-bundle-plugin,它会自动生成符合规范的Manifest,你只需要在pom.xml里配置Export-Package等属性即可
  • 或者使用bnd工具,它是OSGI打包的标准工具,能自动处理Manifest格式、依赖导入导出等问题

内容的提问来源于stack exchange,提问作者Johna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:55:37