Eclipse导出的OSGi Jar无编译文件问题排查求助
解决Eclipse导出OSGi插件Jar不含编译类文件的问题
问题场景
使用Eclipse的
Export deployable plug-ins and fragments工具导出Jar包时,导出的Jar中完全没有编译后的类文件。但在Eclipse IDE中所有Java文件编译都没有错误,直接从Eclipse运行OSGi项目也能正常执行。
排查步骤与日志查看方法
当遇到这类「本地运行正常但导出异常」的情况,可以按以下思路排查:
- 查看Eclipse错误日志:
- 点击Eclipse顶部菜单栏的
Window > Show View > Other... - 在弹出窗口的
General分类下找到Error Log视图并打开 - 这个日志会记录导出过程中所有的警告和错误(比如配置文件解析失败、资源读取异常等),是快速定位问题的关键入口
- 点击Eclipse顶部菜单栏的
- 检查构建核心配置:
重点查看项目根目录下的build.properties文件——这是Eclipse构建OSGi插件的核心配置,负责定义哪些文件、类目录需要被打包进导出的Jar。常见异常包括:bin.includes项缺失了编译类的目标目录(比如bin/或target/classes/)- 文件内容被意外修改、格式损坏(比如语法错误、编码乱码)导致Eclipse无法正确解析
已验证的解决方法
根据你补充的信息,这次问题的根源确实是**build.properties文件损坏**。恢复该文件到正常状态后,导出的Jar就能正确包含编译后的类文件了。
恢复建议:
- 如果项目用了版本控制(如Git),直接从版本库恢复之前正常的
build.properties版本即可 - 如果没有版本控制,可以参考同项目中其他正常插件的配置重新编写,比如一个标准的OSGi插件配置示例:
确保source.. = src/ output.. = bin/ bin.includes = META-INF/,\ .,\ plugin.xmlbin.includes中包含了编译类所在的目录,以及META-INF/、plugin.xml这类必要的插件配置文件
内容的提问来源于stack exchange,提问作者Turkdogan Tasdelen
相关产品推荐
相关产品推荐

