You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse 2022-3创建Liferay模块项目时出现反射访问异常求助

解决Eclipse迁移后创建Liferay模块项目触发InaccessibleObjectException的问题

问题重现

使用Eclipse 2022-3搭配Liferay 7.3.5和Java 1.8开发,迁移旧电脑的Eclipse安装包及工作区到新电脑后,旧模块项目可正常开发,但通过「新建>项目>Liferay>Liferay模块项目」创建新项目时触发以下错误:

java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Map java.security.SecureClassLoader.pdcache accessible: module java.base does not "opens java.security" to unnamed module @73909fd0

已尝试更新、重装Liferay插件,修改Gradle配置文件,问题未解决。

解决方案

这个异常源于Java 9及以上版本的模块系统访问限制——即便你指定了Java 8作为项目JDK,Eclipse自身或Liferay插件可能使用了更高版本的JRE运行,导致反射访问被拦截。按以下步骤排查:

1. 强制Eclipse使用Java 8运行

打开Eclipse安装目录下的eclipse.ini文件,在-vmargs参数之前添加Java 8的JVM路径(注意-vm和路径需分两行):

-vm
D:/jdk1.8.0_301/bin/javaw.exe

替换为你本地Java 8 JDK的实际路径,保存后重启Eclipse。

2. 给Liferay模块创建工具添加JVM参数

如果修改Eclipse运行JRE后问题仍存在,直接给Liferay的项目创建工具添加解除模块限制的参数:

  • 打开「运行>运行配置」,找到「Liferay Module Project Creator」配置(若未找到,先尝试创建一次项目触发错误,配置会自动生成)
  • 切换到「Arguments」标签页,在「VM arguments」中添加:
    --add-opens java.base/java.security=ALL-UNNAMED
    
  • 保存配置后,再次尝试创建项目。

3. 确认工作区Gradle JVM配置

检查工作区默认的Gradle运行JVM是否为Java 8:

  • 打开「窗口>首选项>Gradle>Gradle JVM」
  • 选择本地安装的Java 8 JDK,点击应用并关闭。

验证

完成上述修改后重启Eclipse,再次通过「新建>Liferay模块项目」创建项目,确认错误是否消失。

内容的提问来源于stack exchange,提问作者Lincolnmyth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 05:42:39