jdk对应class file versions对照表

问题

你的异常是典型的 JDK 版本不兼容:RepackageMojo 的 class file version 是 61.0(JDK17 编译),而你当前运行 Maven 的 JDK 只有 52.0(JDK8)

换句话讲:
插件是 JDK17 编译的,你却用 JDK8 去执行构建 → JVM 直接拒绝运行。


解决

1.升级你的 Maven 构建 JDK 到 JDK17
这是最稳的方案,因为 Spring Boot 3.x 基本全是 JDK17
检查当前 Maven 使用的 JDK:

1
mvn -v

如果显示 Java 8:
macOS 环境切换 JDK:

1
export JAVA_HOME=`/usr/libexec/java_home -v 17`

或者全局方式改到 JDK17


2.如果必须使用 JDK8,则需要降低 Spring Boot Maven Plugin 版本
Spring Boot 3.x 只支持 JDK17+
JDK8 只能用 Spring Boot 2.7.x 或以下

pom.xml 替换插件:

1
2
3
4
5
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.18</version> <!-- 支持 JDK8 最后版本 -->
</plugin>

3.如果你是通过 CI/CD/容器执行,检查构建镜像
例如 Dockerfile:

1
FROM maven:3.9.5-eclipse-temurin-8

这种构建镜像会导致你永远是 Java8 → 直接改成 Java17:

1
FROM maven:3.9.5-eclipse-temurin-17

JDK 与 class file version 对照表

JDK 版本 class file version
JDK 1.1 45.3
JDK 1.2 46.0
JDK 1.3 47.0
JDK 1.4 48.0
JDK 5 (1.5) 49.0
JDK 6 (1.6) 50.0
JDK 7 (1.7) 51.0
JDK 8 (1.8) 52.0
JDK 9 53.0
JDK 10 54.0
JDK 11 55.0
JDK 12 56.0
JDK 13 57.0
JDK 14 58.0
JDK 15 59.0
JDK 16 60.0
JDK 17 61.0
JDK 18 62.0
JDK 19 63.0
JDK 20 64.0
JDK 21 65.0
JDK 22 66.0