Eclipse中运行Forge 1.16.5-36.1.24时出现IllegalAccessError问题求助
解决Forge 1.16.5启动时的
java.lang.IllegalAccessError问题 这个错误的核心原因是Java模块系统的封装限制——虽然你提到使用的是Java 8u301,但实际运行游戏的JVM很可能是Java 9或更高版本(因为Java 8没有模块系统,不会抛出这类模块相关的错误)。以下是一步步的实用解决方案:
步骤1:强制启动器使用Java 8
Forge 1.16.5明确要求用Java 8运行,你需要手动锁定启动器的Java路径:
- 打开Forge启动器,进入「设置」页面
- 找到「Java路径」选项,点击「浏览」,定位到你安装的JDK 1.8.0_301的
java.exe文件(通常路径是C:\Program Files\Java\jdk1.8.0_301\bin\java.exe) - 保存设置后重启游戏
步骤2:添加JVM参数绕过模块限制(若步骤1无效)
如果确认用的是Java 8但仍报错,可能是启动器配置存在异常,添加以下JVM参数:
- 在启动器的「JVM参数」输入框中追加:
--add-exports=java.base/sun.security.util=ALL-UNNAMED - 这个参数会让Java模块系统允许Forge的代码(属于未命名模块)访问被封装的
sun.security.util包
步骤3:检查系统环境变量
确保系统的JAVA_HOME和Path环境变量指向正确的Java 8版本,避免启动器自动选到高版本Java:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」中找到
JAVA_HOME,修改其值为C:\Program Files\Java\jdk1.8.0_301 - 检查
Path变量,确保%JAVA_HOME%\bin排在最前面,让系统优先使用这个版本的Java
步骤4:重新安装Forge客户端
如果以上步骤都无效,大概率是Forge的安装文件损坏:
- 卸载当前的Forge客户端
- 下载对应版本的Forge安装包(1.16.5-36.1.24),运行安装程序时确保选择的是Java 8的JDK
- 安装完成后重新启动游戏
你提供的错误信息:
Exception in thread "main" java.lang.IllegalAccessError: class cpw.mods.modlauncher.SecureJarHandler (in unnamed module @0x69379752) cannot access class sun.security.util.ManifestEntryVerifier (in module java.base) because module java.base does not export sun.security.util to unnamed module @0x69379752
内容的提问来源于stack exchange,提问作者damqn4etoBG
相关产品推荐
相关产品推荐

