🚨 你的错误:Unsupported class file major version 65
Unsupported class file major version 65
这个错误表示 Tomcat 9 不支持 JDK 21
🔍 问题分析
-
在
pom.xml
里 指定了 JDK 21:<properties> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> </properties>
JDK 21(Class 文件版本 65)是 Tomcat 9 不支持的
-
Tomcat 9 最高只支持到 JDK 17(Class 文件版本 61)
-
Tomcat 版本(9.x)不兼容 JDK 21,所以它无法解析 JDK 21 编译的 class 文件
✅ 解决方案
方案 1(推荐):使用 Tomcat 10+
既然用的是 JDK 21,推荐 使用 Tomcat 10.1+,它完全支持 Jakarta EE 9+ 和 JDK 21
- 下载并在 idea 中配置 Tomcat 10.1.36 版本
- 这样,就可以在 Tomcat 10+ + JDK 21 环境下运行 Spring MVC
方案 2:降级 JDK 到 17
如果你 一定要使用 Tomcat 9,你需要降级 JDK 到 17:
-
修改 pom.xml 配置:
<properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties>
-
更换本地 JDK 版本
- 在 IDEA 里 修改
Project SDK
为 JDK 17(File → Project Structure → SDK) - 在
Settings → Build, Execution, Deployment → Compiler → Java Compiler
里设置 Target bytecode version = 17
- 在 IDEA 里 修改
-
重新编译
mvn clean package
-
重新运行 Tomcat 9,就不会再报
Unsupported class file major version 65
了
🎯 结论
- 推荐方案:使用 Tomcat 10.1+,这样可以继续用 JDK 21,避免降级 JDK。
- 如果必须用 Tomcat 9,那就 降级 JDK 到 17,并修改
pom.xml
里的maven.compiler.source/target
为17