Spring Boot Maven项目报UnsupportedClassVersionError,如何升级Eclipse编译器至20?
解决Spring Boot(Maven)项目的UnsupportedClassVersionError预览特性问题
问题本质
你的报错核心是Java预览特性不跨版本兼容:
Error: LinkageError occurred while loading main class com.demoJwt.DemoJwtApplication
java.lang.UnsupportedClassVersionError: com/demoJwt/DemoJwtApplication (class file version 59.65535) was compiled with preview features that are unsupported. This version of the Java Runtime only recognizes preview features for class file version 64.65535
- 类文件版本59对应Java 15,64对应Java 20
- 你用Java 15编译了带预览特性的代码,但运行时用的是Java 20,而每个JDK版本仅支持自身编译的预览字节码,因此触发错误。
步骤1:安装Java 20 JDK
你当前IDE找不到Java 20,需先完成安装:
- 从Oracle官网或OpenJDK发行版(如Adoptium)下载Java 20 JDK并完成安装
- 配置系统环境变量
JAVA_HOME指向Java 20的安装目录,同时确保PATH环境变量优先包含Java 20的bin目录
步骤2:在IDE中配置Java 20编译器
Eclipse/STS操作:
- 打开
Window > Preferences > Java > Installed JREs,点击Add选择Standard VM,指向Java 20安装目录,添加后勾选设为默认JRE - 进入
Java > Compiler,在Compiler compliance level下拉菜单选择20 - 若项目有单独配置,右键项目选择
Properties > Java Compiler,勾选Enable project specific settings,选择20并勾选Use compliance from execution environment 'JavaSE-20' on the 'Java Build Path'
IntelliJ IDEA操作:
- 打开
File > Project Structure > Platform Settings > SDKs,点击+添加Java 20 SDK - 进入
Project Settings > Project,设置Project SDK为Java 20,Project language level选择20(若需继续使用预览特性则选20 (Preview)) - 进入
Modules > Sources,将Language level设置为对应版本
步骤3:配置Maven的pom.xml
确保Maven编译时使用Java 20,添加或修改以下配置:
<properties> <!-- 指定编译源和目标版本为20 --> <maven.compiler.source>20</maven.compiler.source> <maven.compiler.target>20</maven.compiler.target> <!-- 若使用预览特性,需添加该参数 --> <maven.compiler.parameters>--enable-preview</maven.compiler.parameters> </properties> <build> <plugins> <!-- 配置maven编译插件支持Java 20 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <!-- 确保插件版本支持Java 20 --> <configuration> <source>20</source> <target>20</target> <!-- 启用预览特性的编译参数 --> <compilerArgs> <arg>--enable-preview</arg> </compilerArgs> </configuration> </plugin> <!-- Spring Boot插件配置预览特性启动参数 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <jvmArguments>--enable-preview</jvmArguments> </configuration> </plugin> </plugins> </build>
步骤4:清理并重新编译
- IDE内执行项目清理:Eclipse选
Project > Clean,IntelliJ选Build > Rebuild Project - 命令行执行
mvn clean install,确保编译过程无报错
启动验证
启动项目时,确保运行环境为Java 20;若使用了预览特性,启动参数需包含--enable-preview
内容的提问来源于stack exchange,提问作者Dario Garcia
相关产品推荐
相关产品推荐

