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
相关产品推荐
相关产品推荐

