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

Java11迁移至Java17遇Unsupported class file major version 61错误求助

解决Java 11迁移至Java 17时Quarkus项目的字节码增强错误

问题根源

错误栈中的Unsupported class file major version 61是核心线索:

  • 版本号61对应Java 17,意味着项目用Java 17编译,但当前依赖的Hibernate字节码增强工具不支持该版本。
  • 主要问题有两个:
    1. 旧版Quarkus集成的Hibernate ORM版本无法兼容Java 17
    2. Lombok 1.18.24对Java 17的支持不完善

修复方案

1. 升级Quarkus到支持Java 17的版本

Quarkus从2.7.x版本开始正式支持Java 17,推荐升级到最新稳定版(如3.x系列,兼容性更佳)。若使用Maven,需确保quarkus-bom版本正确:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-bom</artifactId>
      <version>3.12.0</version> <!-- 替换为最新稳定版 -->
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

2. 升级Lombok版本

Lombok 1.18.24对Java 17的支持存在缺陷,需升级至至少1.18.30版本:

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.30</version>
</dependency>

3. 清理并重新构建项目

执行Maven命令清理旧编译产物,避免版本冲突:

mvn clean install -DskipTests

额外检查项

  • 确认maven-compiler-plugin已配置为Java 17:
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.11.0</version>
  <configuration>
    <source>17</source>
    <target>17</target>
  </configuration>
</plugin>
  • 检查自定义依赖common-lib是否也使用Java 17编译,防止引入旧字节码版本的依赖。

验证

重新运行测试:

mvn test

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:35:24