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

Java 17+Gradle 7.6环境执行Gradle Wrapper失败,报Unsupported class file major version 65(Java 21版本)错误

Java 17+Gradle 7.6环境执行Gradle Wrapper失败,报Unsupported class file major version 65(Java 21版本)错误

我之前也碰到过几乎一模一样的问题,这个报错的核心原因其实很明确:Jackson 2.15.x系列开始使用了多版本JAR(Multi-Release JAR)格式,里面包含了针对Java 21编译的class文件(对应major version 65),而你当前使用的Gradle 7.6的内部ASM库版本不支持解析这种高版本的class文件——哪怕你实际运行环境是Java 17,Gradle在处理依赖JAR时会扫描所有版本的class文件,从而触发这个兼容性错误。

下面给你几个经过验证的可行解决方法:

方法一:降级Jackson依赖到2.14.x系列

Jackson 2.14.x及以下版本的JAR包中不包含Java 21的class文件,完全适配Java 17和Gradle 7.6。你需要在项目的build.gradle(或build.gradle.kts)中强制指定Jackson相关依赖的版本:

// Groovy DSL 示例
configurations.all {
    resolutionStrategy {
        // 强制所有依赖使用Jackson 2.14.3(稳定版)
        force 'com.fasterxml.jackson.core:jackson-core:2.14.3'
        force 'com.fasterxml.jackson.core:jackson-databind:2.14.3'
        force 'com.fasterxml.jackson.core:jackson-annotations:2.14.3'
        // 如果用到了jackson其他模块(如jackson-dataformat-json等),也需要同步降级
    }
}

之后执行清理和构建命令,同时可以手动清理本地Jackson缓存确保生效:

rm -rf ~/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/
gradle clean build

方法二:升级Gradle到兼容版本

Gradle 7.6.2(7.x系列的最新补丁版)和Gradle 8.0及以上版本,已经更新了内部ASM库以支持Java 21的class文件解析。如果你不想降级Jackson,可以选择升级Gradle:

  1. 手动修改项目根目录下的gradle/wrapper/gradle-wrapper.properties,更新distributionUrl:
    # 示例:升级到7.6.2(兼容Java 17且修复了该问题)
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip
    
  2. 重新生成Wrapper并验证:
    gradle wrapper --gradle-version 7.6.2
    ./gradlew build
    

方法三:排查并阻断高版本Jackson的传递依赖

先通过Gradle命令找出哪个第三方依赖引入了Jackson 2.15.4:

gradle dependencies --configuration compileClasspath | grep jackson-core

找到对应的依赖后,在build.gradle中直接排除它的高版本Jackson依赖,同时指定兼容版本:

// 示例:假设是spring-boot-starter-web引入了高版本Jackson
dependencies {
    implementation('org.springframework.boot:spring-boot-starter-web') {
        exclude group: 'com.fasterxml.jackson.core', module: 'jackson-core'
        exclude group: 'com.fasterxml.jackson.core', module: 'jackson-databind'
        exclude group: 'com.fasterxml.jackson.core', module: 'jackson-annotations'
    }
    // 手动引入兼容版Jackson
    implementation 'com.fasterxml.jackson.core:jackson-core:2.14.3'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.3'
    implementation 'com.fasterxml.jackson.core:jackson-annotations:2.14.3'
}

另外你提到删除.gradle目录后还是报错,这是因为删除缓存只是重新拉取依赖,但Jackson 2.15.4本身的多版本JAR特性依然存在,所以必须从依赖版本或Gradle版本的兼容性入手解决。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 11:34:37