一开始linux中就已经下好了JDK21,但是后来创建项目的时候选用了JDK23,导致环境错乱,估计大部分都是因为这个原因,接下来我会一步步带大家解决。
检查系统环境(以Ubuntu为例)
没有下载JDK的可以在官网下载
检查是否配置了JAVA_HOME
echo $JAVA_HOME
如果显示
/usr/lib/jvm/jdk-21.0.5-oracle-x64
那么已经配置好了,记住这个地址后面要用到
如果什么都没有显示就还没有配置
配置JAVA_HOME
nano ~/.bashrc
滚动到文章末尾并添加以下行
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
如果不知道自己要用的java地址在哪里可以先用
sudo update-alternatives --config java
有多个JDK的时候要选择一个
有 2 个候选项可用于替换 java (提供 /usr/bin/java)。选择 路径 优先级 状态
------------------------------------------------------------0 /usr/lib/jvm/jdk-21.0.5-oracle-x64/bin/java 352362496 自动模式1 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 1 手动模式
* 2 /usr/lib/jvm/jdk-21.0.5-oracle-x64/bin/java 352362496 手动模式要维持当前值[*]请按<回车键>,或者键入选择的编号:
填写你当前需要使用的JDK编号就好了,并且要记住这个地址,后面idea配置的时候不要弄混了!
修改完文件后要通过运行来应用更改
source ~/.bashrc
确认JAVA_HOME设置正确
echo $JAVA_HOME
这个时候你就能看到弹出来的java地址了
检查idea配置
检查SDK
在idea上,文件->项目结构->平台设置->SDK
在JDK主路径中选择前面查询到的JDK地址
然后选中项目栏检查SDK是否一致
打开模块
语言级别最好和当前JDK一致
检查设置
打开文件->设置->构建执行部署->编译器->Java编辑器
检查目标字节码是否与JDK版本一致
然后选构建工具->Maven->正在导入
检查导入程序的JDK是否一致
进入->运行程序
检查JRE地址是否一致
检查pom.xml文件
检查继承父类
<!-- Spring Boot Parent --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.0</version><relativePath/> <!-- to resolve parent from central repository --></parent>
这里的spring-boot版本要与你的JDK版本兼容,可以参考下图
最好参考一下官方文档
检查properties
<properties><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>
检查版本是否是对应JDK版本
运行
先清空缓存
rm -rf ~/.m2/repository
再构建项目
mvn clean install
最后运行项目就ok啦
如果还有问题的欢迎大家在评论区讨论。