Eclipse RCP启动报错:缺少osgi.ee约束(JavaSE 17)求解决方案
解决Eclipse RCP应用启动的osgi.ee依赖未解析问题
1. 切换到Java 17运行环境
- 检查Eclipse已安装JRE:打开
Window > Preferences > Java > Installed JREs,确保存在Java 17版本,无则添加对应JRE。 - 配置product执行环境:打开MyApp.product,切换到
Configuration标签页,在Execution Environment下拉菜单选择JavaSE-17。 - 修正运行配置的JRE:打开
Run > Run Configurations,找到对应Eclipse Application配置,切换到JRE标签页,选择Java 17版本的JRE。
2. 对齐org.eclipse.equinox.simpleconfigurator版本与Java环境
- 在
Plug-ins视图中找到org.eclipse.equinox.simpleconfigurator插件,查看其版本。若该插件基于Java 17编译,必须使用Java 17运行;若项目原本适配更低Java版本,可尝试降级到对应版本的simpleconfigurator(如Java 11适配版本),降级前需确认其他插件无版本依赖冲突。
3. 检查插件MANIFEST.MF的执行环境声明
- 打开插件的MANIFEST.MF文件,切换到
Runtime标签页查看Execution Environments部分。若插件声明了低于17的Java版本,修改为JavaSE-17;若存在多余的Require-Capability: osgi.ee声明,确认无功能影响后可移除。
4. 清理重构项目
- 执行
Project > Clean,清理所有相关项目。 - 右键点击MyApp.product文件,选择
Validate,修复验证过程中出现的警告。 - 在product文件的
Overview标签页点击Synchronize按钮,同步所有插件配置。
5. 调整config.ini配置
- 找到项目
configuration目录下的config.ini文件,添加或修改以下配置:
确保Equinox能识别当前Java环境的EE能力。osgi.ee=JavaSE-17
内容的提问来源于stack exchange,提问作者tail
相关产品推荐
相关产品推荐

