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

IntelliJ修改Java版本为8不生效,终端javac仍为17编译报错如何解决

问题修复方案

你的报错是JDK 9+引入的模块系统限制Lombok访问JDK内部类导致的,只要成功将编译环境切换到JDK 8即可解决,按以下步骤操作:

1. 修正Gradle运行时JDK配置

IntelliJ的Project Structure配置仅影响项目的代码索引,不会影响Gradle编译使用的JDK版本,需单独配置:

  • 打开IntelliJ偏好设置(Mac快捷键⌘,),依次进入Build, Execution, Deployment -> Build Tools -> Gradle
  • 找到Gradle JVM选项,下拉选择你已安装的adopt-openjdk8,保存配置

2. 修正终端Java版本配置

IntelliJ内置终端默认继承系统的环境变量,需修改shell配置文件默认绑定JDK 8:

  • 在内置终端执行/usr/libexec/java_home -V,列出所有已安装的JDK,确认adopt-openjdk8的版本号为1.8.x
  • 编辑shell配置文件:如果使用默认zsh,执行nano ~/.zshrc;如果使用bash,执行nano ~/.bash_profile
  • 在文件末尾添加以下两行:
    export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
    export PATH=$JAVA_HOME/bin:$PATH
    
  • 保存退出后执行source ~/.zshrc(对应bash执行source ~/.bash_profile),重启内置终端后执行javac -version即可看到版本为1.8

3. 确认项目Gradle配置兼容

打开项目根目录的build.gradle文件,确认Java编译版本和Lombok版本适配JDK 8:

  • 确保Java版本配置为1.8:
    java {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    
  • 确保Lombok版本为1.18.x系列(该版本区间同时兼容JDK 8和高版本JDK),不要使用过高的测试版

验证修复

所有配置完成后,重新执行./gradlew clean build即可正常编译。

内容的提问来源于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 12:54:05