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

升级Java11到17、WildFly23到24后遇Unsupported class file major version 61错误

问题解答

1. 当前class文件是否为Java17版本?

是的。Unsupported class file major version 61这个报错明确对应Java17的class文件版本(Java版本与class文件主版本号对应关系:Java17=61、Java16=60,以此类推),说明你的项目已经成功编译为Java17版本的class文件。

2. 是否因spring-core 5.2.2与Java17不兼容导致?

完全正确。Spring Framework 5.2.x系列官方支持的最高Java版本为Java14,不兼容Java17。同时,Spring 5.2.2依赖的ASM版本(通常为ASM 7.x)无法解析Java17的class文件(ASM 9.0及以上版本才支持Java17),这就是你遇到ASM ClassReader无法解析报错的核心原因。

3. 解决方法

方案一:升级Spring版本到兼容Java17的分支(推荐)

这是最稳妥的解决方案:

  • 若要保留Spring 5.x生态,升级到Spring Framework 5.3.20及以上版本(5.3.x是长期支持分支,最高支持Java18),对应的Spring Boot版本为2.7.x(Spring Boot 2.7.x默认依赖Spring 5.3.x,且支持Java17)。
  • 若想适配Java17+新特性,可直接升级到Spring Framework 6.x(要求Java17+),对应的Spring Boot版本为3.x。

方案二:单独升级ASM依赖(临时过渡,不推荐)

如果暂时无法升级Spring,可尝试将ASM版本升级到9.3及以上(支持Java17),在pom.xml中强制指定ASM版本:

<dependency>
    <groupId>org.ow2.asm</groupId>
    <artifactId>asm</artifactId>
    <version>9.5</version>
</dependency>
<dependency>
    <groupId>org.ow2.asm</groupId>
    <artifactId>asm-commons</artifactId>
    <version>9.5</version>
</dependency>

⚠️ 注意:这种方式可能引发Spring与ASM版本的兼容性问题,仅作为临时过渡方案。

方案三:确认编译与运行环境一致性

  • 检查Maven编译配置:确保maven-compiler-plugin的release参数正确设置为17,且所有模块统一使用该配置,避免部分模块编译为旧版本class文件。
  • 验证WildFly运行环境:确认WildFly启动时使用的是Java17 JDK,检查启动脚本中的JAVA_HOME是否指向正确的Java17安装目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:05:02