SpringBoot版本较高时,需要使用jdk以上版本,运行项目控制台可能会输出:# java: 警告: 源发行版 17 需要目标发行版 17 出现这个警告的原因就是期望的版本是17,但是实际的版本不是17,从以下几个方面排查
源码配置
- 项目指定java版本
<!--
在 Spring Boot 项目中,spring-boot-starter-parent 会自动读取java.version属性,用于配置 maven-compiler-plugin 的 source 和 target 版本。
project.build.sourceEncoding:指定源码文件的编码(如 UTF-8),用于编译阶段,确保源代码正确读取和编译。
project.reporting.outputEncoding:指定 Maven 生成报告(如 Javadoc、测试报告等)时的输出编码。
这两个属性通常会被 Maven 插件(如 maven-compiler-plugin、maven-javadoc-plugin、maven-surefire-plugin 等)自动读取和应用。
-->
<java.version>17</java.version>
- 可能需要配置maven编译环境
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
</build>
检查idea的配置
- 项目级别配置:
-
- 打开 File > Project Structure (或按 Ctrl+Alt+Shift+S)
- 在左侧面板选择 "Project"
- 在右侧 "Project SDK" 下拉菜单中选择或配置 JDK 17
- 模块级别配置:
-
- 同样在 Project Structure 对话框中
- 选择左侧的 "Modules"
- 在"Source"标签页中的Language level下拉菜单选择17
- 在 "Dependencies" 标签页中设置模块的 SDK (我是忘了检查这一项,排查了很久)
- 应用程序编辑配置:
-
- 打开 File > settings
- 在左侧面板选择 "Build, Execution, Deployment"
- 打开Build Tools > Maven > Runner配置JRE为17
- 打开Compile > Java Compiler设置每个模块的字节码版本为17