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

Gradle构建SpringBoot微服务报Lombok非法访问错误如何解决

报错修复方案

这个报错是JDK9及以上版本引入的模块系统限制导致的,JDK17默认禁止外部代码访问JDK内部API,你使用的Lombok版本没有适配JDK17时就会触发该错误,可从两种方案中选一种修复:

方案1:切换为本地已安装的adoptopenjdk8构建(更稳妥,适合项目原本基于JDK8开发的场景)

  • 打开IntelliJ IDEA,进入File > Project Structure > Project Settings > Project,将Project SDK设置为adoptopenjdk8,语言级别选择8。
  • 再进入File > Settings > Build, Execution, Deployment > Build Tools > Gradle,将Gradle JVM设置为adoptopenjdk8。
  • 重新执行./gradlew clean build即可。

方案2:适配JDK17构建

  • 第一步:升级Lombok版本至1.18.22及以上(推荐最新稳定版1.18.30),在项目build.gradle文件中修改Lombok依赖的版本号即可。
  • 第二步:如果升级后仍报错,在build.gradle中添加编译器参数配置:
compileJava {
    options.fork = true
    options.forkOptions.jvmArgs += [
        '--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED',
        '--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED',
        '--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED',
        '--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED',
        '--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED',
        '--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED',
        '--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED'
    ]
}
  • 重新执行构建命令即可。
查询项目开发时使用的Java版本方法

通过Gradle可通过以下方式查询:

  • 直接查看项目根目录下的build.gradle文件,搜索sourceCompatibility和targetCompatibility配置项,两个参数的取值就是项目开发时使用的Java版本。
  • 若配置文件中没有显式声明这两个参数,可执行Gradle命令打印对应属性:
    • Linux/Mac系统执行:./gradlew properties | grep -E "sourceCompatibility|targetCompatibility"
    • Windows系统执行:gradlew.bat properties | findstr "sourceCompatibility targetCompatibility"
  • 也可通过项目依赖的Spring Boot版本辅助判断:Spring Boot 2.x系列默认兼容JDK8,Spring Boot 3.x系列最低要求JDK17。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:24:06