Eclipse 2022-06 for Java EE更新类加载器时出现内部错误
Eclipse 2022-06 for Java EE 内部错误解决方法
问题描述
执行“更新类加载器”期间触发内部错误:
超类访问检查失败:类oracle.eclipse.tools.common.util.classloader.jarnocache.JarProtocolHandlerWithoutLeak(位于未命名模块@0x2704c8cb)无法访问类sun.net.www.protocol.jar.Handler(位于模块java.base),因为模块java.base未将sun.net.www.protocol.jar导出到未命名模块@0x2704c8cb
这是JDK 9+模块系统(JPMS)限制内部API访问导致的兼容性问题,结合Oracle Eclipse插件特性,可通过以下方案解决:
解决方案
1. 添加JVM启动参数
编辑Eclipse安装目录下的eclipse.ini文件,在-vmargs段添加以下参数,允许未命名模块访问java.base的内部API:
--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED
保存后重启Eclipse即可生效。
2. 更新或调整Oracle相关插件
错误涉及oracle.eclipse.tools包,说明安装了Oracle企业级插件(如Oracle Enterprise Pack for Eclipse):
- 检查插件更新:打开Eclipse的「帮助」→「检查更新」,安装所有可用的Oracle插件更新,新版本通常会适配JDK模块系统。
- 暂时禁用插件:若更新后仍无效,可通过「窗口」→「首选项」→「插件安装」找到相关Oracle插件并禁用,验证是否解决问题。
3. 切换兼容JDK版本
如果上述方案无法解决,可尝试降级到JDK 8(无模块系统限制):
- 下载安装JDK 8,在Eclipse中配置:「窗口」→「首选项」→「Java」→「已安装的JRE」,添加JDK 8并设为默认。
- 同时在项目的「构建路径」中切换JDK为8版本。
内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ
相关产品推荐
相关产品推荐

