IDEA从jdk8换成jdk17后又还原的那些事

背景

在本地装有jdk17也装有jdk8

正常在jdk8中运行的项目,因另一个项目需要,springbootAI的需要,换成了jdk17。今天再访问呢原来项目时,maven编译时报错。

检查1:

现象:

cmd命令检查

jdk版本已经切换成8版本

JAVA_HOME目录已修改

但cmd命令行查看jdk版本时,还是显示jdk17

原因:

卸载jdk17后,java -version还未显示成jdk8。在环境变量中的PATH目录下,安装jdk17的时候,会默认将jdk·17的信息放在首行,这样虽然手动改了JAVA_HOME的指向,但未生效。降jdk17的配置信息移动到jdk8的后面,显示正常。

C:\Users\AI>where java
C:\Program Files\Common Files\Oracle\Java\javapath\java.exe
C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe
D:\Program Files\Java\jdk1.8.0_211\bin\java.exe
D:\Program Files\Java\jdk1.8.0_211\jre\bin\java.exe

C:\Users\AI>echo %JAVA_HOME%
D:\Program Files\Java\jdk1.8.0_211

C:\Users\AI>java -version
java version "17.0.16" 2025-07-15 LTS
Java(TM) SE Runtime Environment (build 17.0.16+12-LTS-247)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.16+12-LTS-247, mixed mode, sharing)

检查2:

现象:

jdk已经是8版本,编译时报错

class lombok.javac.apt.LombokProcessor (in unnamed module @0x691a93f7) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x691a93f7

原因:

虽然你用了 JDK 1.8 编译,但这个错误表明:你实际上是在一个 JDK 9+ 的模块化 JVM 环境下运行(比如 JDK 17),而 Lombok 无法访问内部的 com.sun.tools

能够确保的是,项目中用的lombok版本是1.18.10.

之前就可以,只是换了jdk后才异常。思路就是不升级Lombok版本,继续使用jdk8

检查3:

将IDEA中需要配置jdk的地方,都配置成8的后。maven clean也报错

cmd.exe /c "D:\softs\apache-maven-3.9.1-log4x\bin\mvn.cmd -Didea.version=2025.2 "-Dmaven.ext.class.path=D:\Program Files\JetBrains\IntelliJ IDEA 2025.2\plugins\maven\lib\maven-event-listener.jar" -Djansi.passthrough=true -Dstyle.color=always -s D:\softs\apache-maven-3.9.1-log4x\conf\settings.xml compile"
The JAVA_HOME environment variable is not defined correctly, 
this environment variable is needed to run this program. 
C:\Users\AI>java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

C:\Users\AI>echo %JAVA_HOME%
D:\Program Files\Java\jdk1.8.0_211

原因:

看似配置了JAVA_HOME,但MAVEN仍然无法识别它。

百度了下,以为是在目录Program Files文件夹中,有空格导致的。卸载jdk8。重新创建一目录安装。

重新执行时,报错更离谱

又重新百度了下,

idea中,file-project structure-project seeting中已经还原为jdk8。

有一种说法是,要保持默认的jdk名称,重新安装了一次。更改下项目用的jdk.

检查4:

这是什么原因,百度看来下

原因:

明明jdk都已经换成了8版本的了,怎么还会有去找17的内容呢。

是的,重新配置下jre,之前一直修改的jdk,这块倒是没有想起来。

总结:

还是得相信原来环境,升级一个组件,有时涉及到的就有点多了。因为我知道,原来是可以的,只是换了jdk17后才异常,就全部还原回去。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值