Eclipse 4.23中RCPTT启动失败:缺少getModels()抽象方法实现
Eclipse 4.23运行RCPTT时AbstractMethodError的解决办法
错误原因
这个java.lang.AbstractMethodError是RCPTT版本与Eclipse 4.23的PDE组件不兼容导致的:Eclipse 4.23对org.eclipse.pde.internal.launching.launcher.LaunchValidationOperation抽象类新增了getModels()抽象方法,但当前使用的RCPTT版本并未实现该方法,运行时调用到这个未实现的方法就触发了错误。
解决办法
1. 升级RCPTT到兼容版本
选择明确支持Eclipse 4.23(2021-09)的RCPTT版本进行升级。RCPTT的官方版本会同步适配Eclipse的迭代更新,升级后即可解决API不匹配问题。
2. 降级Eclipse版本
如果暂时无法升级RCPTT,可将Eclipse降级到当前RCPTT版本支持的旧版本(比如Eclipse 4.22及更早版本),确保PDE组件的API与RCPTT的实现完全匹配。
3. 手动适配修复(进阶方案)
若持有RCPTT源码权限,可以修改相关代码实现缺失的方法:
在org.eclipse.rcptt.launching.internal.target.TargetPlatformHelper类中,找到创建LaunchValidationOperation子类的逻辑,添加getModels()方法的实现:
@Override public Set getModels() { // 根据业务场景返回对应模型集合,示例返回空集合,可按需调整 return Collections.emptySet(); }
重新编译RCPTT插件并替换原有插件即可。
内容的提问来源于stack exchange,提问作者Birudeo Garande
相关产品推荐
相关产品推荐

