如何解决Java 17运行Java Web应用时的java.lang.UnsupportedClassVersionError错误
Java Web应用部署Tomcat报错的解决办法
错误原因
java.lang.UnsupportedClassVersionError 这个错误的核心是服务器上的Tomcat运行环境JRE版本和编译代码的JDK版本不兼容:
- 你用Java17编译的类文件版本为61.0
- 服务器上的Tomcat使用的JRE仅能识别最高52.0版本的类文件(对应Java8)
- 本地Eclipse里的Tomcat配置了Java17的JRE,因此可以正常运行
解决方案
方案1:升级服务器的JRE版本到Java17
Tomcat 10.0.27支持Java8到Java18,直接替换服务器上的JRE即可:
- 下载并安装Java17到服务器
- 配置Tomcat的环境变量,指定使用Java17:
- Linux系统:在Tomcat的
bin/setenv.sh中添加export JAVA_HOME=/你的Java17安装路径 - Windows系统:在Tomcat的
bin/setenv.bat中添加set JAVA_HOME=C:\你的Java17安装路径 - 如果没有setenv文件,直接修改
catalina.sh(Linux)或catalina.bat(Windows),加入上述配置
- Linux系统:在Tomcat的
方案2:降低项目的编译版本到Java8
若不想升级服务器JRE,可调整项目编译级别适配Java8:
- 在Eclipse中右键项目 → 属性 → Java编译器
- 勾选「启用项目特定设置」,将「编译器合规性级别」改为1.8
- 重新编译项目,生成兼容Java8的类文件后再部署到服务器
内容的提问来源于stack exchange,提问作者koo_by
相关产品推荐
相关产品推荐

