Windows11下XAMPP加载Java Servlet遇版本兼容错误求助
在Windows 11+XAMPP 3.3.0中加载Java Servlet时的版本兼容问题
报错内容
Class has been compiled by a more recent version of the Java Runtime (class file version 64.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load the class.

当前环境
- 操作系统:Windows 11
- XAMPP版本:3.3.0
- 已安装的Java环境:
- 命令行查询版本:
java version "20.0.1" 2023-04-18 Java(TM) SE Runtime Environment (build 20.0.1+9-29) Java HotSpot(TM) 64-Bit Server VM (build 20.0.1+9-29, mixed mode, sharing)
- 控制面板显示版本:Version 8 Update 381 (build 1.8.0_381-b-09)

- 命令行查询版本:
问题原因
错误里的版本号对应关系:
- class file version 64.0:Java 20编译生成的类文件版本
- class file version 52.0:Java 8(JRE 1.8)能识别的最高类文件版本
你的Servlet类是用Java 20编译的,但XAMPP内置的Tomcat正在使用JRE 1.8运行,版本不匹配导致无法加载类。
解决方案
方案1:用Java 8编译Servlet代码
编译时指定版本参数,保证生成的类文件兼容Java 8:
javac -source 1.8 -target 1.8 YourServlet.java
如果用IDE(比如Eclipse、IDEA),需要在项目设置里将编译版本改为1.8。
方案2:让XAMPP使用Java 20运行
- 找到XAMPP安装目录下的
tomcat/bin/setclasspath.bat文件 - 编辑该文件,在开头添加:
路径替换为你实际的Java 20安装路径set JAVA_HOME=C:\Program Files\Java\jdk-20.0.1 set JRE_HOME=C:\Program Files\Java\jdk-20.0.1\jre - 重启XAMPP的Tomcat服务
方案3:统一使用Java 8环境
如果不需要Java 20,直接卸载Java 20,确保系统环境变量中的JAVA_HOME指向Java 8的安装目录,重启XAMPP即可。
内容的提问来源于stack exchange,提问作者BS e-Learning
相关产品推荐
相关产品推荐

