Eclipse RCP基于feature导出产品后无法加载ArtopPerspectiveFactory类报错
解决方案
核心报错根因为com.autron.odin.common.ui插件下的ArtopPerspectiveFactory类加载失败,开发环境运行正常但导出后报错可按以下顺序排查:
1. 检查自定义插件的build.properties配置
大部分该类问题都是导出时没有把编译后的类文件打入插件包导致:
- 打开
com.autron.odin.common.ui插件的build.properties文件 - 确认配置中存在
output.. = bin/,且bin.includes列表中包含.项,保证编译后的class文件会被打包进插件jar - 导出产品后,到产品目录的
plugins文件夹下找到com.autron.odin.common.ui对应的jar包,解压确认com/autron/odin/common/ui/perspectives/ArtopPerspectiveFactory.class文件存在
2. 检查feature与product的依赖配置
- 确认
com.autron.odin.common.ui插件已经被加入到product依赖的feature列表中,没有被标记为排除 - 打开product配置的「内容」标签页,点击「验证插件」按钮,检查是否存在缺失的依赖插件,尤其是EMF、Sphinx、Artop相关的组件,依赖缺失会间接导致类加载失败
3. 检查JDK17适配的启动参数
Eclipse 2021-09版本对JDK17的适配需要额外添加VM参数规避强封装限制,开发环境的启动配置可能默认添加了该参数但product未配置:
在product配置的「启动」标签页的VM参数栏加入以下配置:
--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.swing=ALL-UNNAMED
4. 检查插件MANIFEST.MF配置
- 确认
Bundle-ClassPath配置为.,没有被修改为其他不包含当前插件类路径的值 - 确认所有
Import-Package和Require-Bundle的依赖项没有缺失,没有版本不匹配的问题
内容的提问来源于stack exchange,提问作者m100409
相关产品推荐
相关产品推荐

