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

Gradle与JDK兼容仍报Unsupported class major file version 61错误求助

问题:Unsupported class major file version 61 错误排查与解决

我已查看过相关问题但未能解决。使用IntelliJ IDEA,根据Oracle文档,Java 15.0.2与Gradle 6.7兼容,但仍收到Unsupported class major file version 61错误。此前使用JDK 17,现已卸载并将Java_Home设置为JDK 15。

本地环境信息

Gradle版本详情:

------------------------------------------------------------
Gradle 6.7
------------------------------------------------------------

Build time:   2020-10-14 16:13:12 UTC
Revision:     312ba9e0f4f8a02d01854d1ed743b79ed996dfd3

Kotlin:       1.3.72
Groovy:       2.5.12
Ant:          Apache Ant(TM) version 1.10.8 compiled on May 10 2020
JVM:          15.0.2 (Oracle Corporation 15.0.2+7-27)
OS:           Windows 10 10.0 amd64

JDK详情:

java version "15.0.2" 2021-01-19
Java(TM) SE Runtime Environment (build 15.0.2+7-27)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.2+7-27, mixed mode, sharing)

已执行的排查操作

  • Project Structure >> Project >> JDK版本设置为15;
  • Settings >> Build Tools >> Gradle >> Gradle JVM设置为15;
  • 修改gradle/gradle-wrapper.properties中的版本从7.5.1改为6.7,配置为distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip;
  • 修改source和target兼容性为15:
// Set the JVM compatibility versions
withType<JavaCompile> {
    sourceCompatibility = "15"
    targetCompatibility = "15"
}

尽管完成以上操作,仍收到该错误,求解决方法。


更新IntelliJ至2023.1.2后的配置

Gradle Wrapper配置:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-7.6-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

插件及依赖配置:

plugins {
    id("java")
    id("org.jetbrains.intellij") version "1.14.1"
}

group = "com.plugin"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

// Configure Gradle IntelliJ Plugin
intellij {
    version.set("2023.1.2")
    type.set("IC") // Target IDE Platform

    plugins.set(listOf(/* Plugin Dependencies */))
}

tasks {
    // Set the JVM compatibility versions
    withType<JavaCompile> {
        sourceCompatibility = "20"
        targetCompatibility = "20"
    }

    patchPluginXml {
        sinceBuild.set("221")
        untilBuild.set("231.*")
    }

    signPlugin {
        certificateChain.set(System.getenv("CERTIFICATE_CHAIN"))
        privateKey.set(System.getenv("PRIVATE_KEY"))
        password.set(System.getenv("PRIVATE_KEY_PASSWORD"))
    }

    publishPlugin {
        token.set(System.getenv("PUBLISH_TOKEN"))
    }
}

解决方案

核心原因

Version 61对应JDK 17,说明项目中仍有JDK 17编译的class文件残留,或某个环节仍在调用JDK 17执行。

分步解决

  1. 清理旧编译产物
    执行Gradle的clean任务,或手动删除项目根目录下的build文件夹以及.gradle缓存目录,彻底清除旧编译文件。

  2. 校验系统全局JDK配置

    • 打开命令行执行java -version和javac -version,确认输出均为15.0.2;
    • 检查系统环境变量,确保JAVA_HOME指向JDK 15目录,且PATH中无JDK 17的残留路径;
    • 重启IntelliJ IDEA,确保环境变量变更生效。
  3. 检查模块级JDK配置
    进入Project Structure >> Modules,逐个确认每个模块的JDK版本均为15,避免模块单独使用其他JDK。

  4. 终止Gradle守护进程
    Gradle守护进程可能仍在使用旧JDK运行,执行命令停止所有守护进程后重新构建:

    gradle --stop
    
  5. 适配更新后的2023.1.2配置
    更新后的配置将Java兼容性设为20,需对应调整:

    • 若使用JDK 20:确保本地已安装JDK 20,将JAVA_HOME或Gradle JVM切换为JDK 20;
    • 若继续使用JDK 15:将sourceCompatibility和targetCompatibility改回15,Gradle 7.6兼容JDK 15,无需调整Gradle版本。
  6. 校验IntelliJ编译设置
    进入Settings >> Build, Execution, Deployment >> Compiler >> Java Compiler,确保每个模块的“Target bytecode version”与使用的JDK版本一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:57:28