You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Tool Suite 4中UnsupportedClassVersionError问题求助

问题描述

运行Spring项目时遇到以下错误:

java.lang.UnsupportedClassVersionError: jakarta/servlet/http/HttpServlet has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0 (unable to load class [jakarta.servlet.http.HttpServlet]) (unable to load class [org.springframework.web.servlet.HttpServletBean]) (unable to load class [org.springframework.web.servlet.FrameworkServlet]) (unable to load class [org.springframework.web.servlet.DispatcherServlet])

已执行以下操作但问题未解决:

  • 进入Properties -> Java Build Path -> Libraries,将执行环境修改为Java SE-17
  • 进入Windows -> Preferences -> Java -> Compiler,将编译器合规级别设置为17
  • 笔记本已安装Java 17版本

作为新手,请问问题出在哪里?

问题分析与解决办法

这个错误的核心是:你项目依赖的Jakarta Servlet类(class文件版本65.0)是用Java 21编译的,但当前运行项目的JDK版本是Java 17(最高支持class文件版本61.0)。你已经调整了编译和构建路径的JDK,但运行时用的JDK版本不对。

需要检查以下几个关键点:

1. 检查项目运行配置的JDK版本

  • 在Eclipse中,找到你的项目,右键选择「Run As」→「Run Configurations」
  • 找到对应的Spring Boot或Web应用运行配置,切换到「JRE」标签页
  • 确认选中的JRE是Java 17,而不是更低版本或者系统默认的其他JDK

2. 检查构建工具的JDK配置

如果项目使用Maven:

  • 打开项目根目录的pom.xml,检查是否指定了正确的JDK版本:
<properties>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
</properties>
  • 打开「Windows」→「Preferences」→「Maven」→「Installations」,检查Maven关联的JRE是否为17

如果项目使用Gradle:

  • 打开build.gradle,检查JDK版本配置:
java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}
  • 确认Gradle运行时使用的JDK是17

3. 检查系统环境变量

  • 打开系统环境变量,确认JAVA_HOME指向Java 17的安装目录
  • 检查Path变量中,Java 17的bin目录优先级高于其他JDK版本的目录

4. 清理并重新构建项目

  • 右键项目→「Clean」,清理旧的编译文件
  • 执行构建工具的清理和构建任务:Maven执行「Clean」→「Install」,Gradle执行「clean」→「build」,重新生成符合JDK 17的编译产物

内容的提问来源于stack exchange,提问作者Mini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:12:47