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

Gradle构建报错:Unsupported class file major version 64求助

问题描述

使用IntelliJ、JDK20和JavaFX开发项目,此前修改依赖等操作均正常。今日修改build.gradle的sourceSets配置后,构建时触发错误:

BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 64

但将build.gradle恢复至上次成功构建的版本后,又能正常编译。当前使用Gradle 8.0.2,按版本说明该版本支持JDK20,对此问题感到困惑,寻求解决办法。

相关配置信息

gradle.properties

# 示例配置,以实际内容为准
org.gradle.java.home=/path/to/your/jdk20
org.gradle.jvmargs=-Xmx2048m
org.gradle.parallel=true

修改后报错的build.gradle(核心改动部分)

plugins {
    id 'java'
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.0.13'
}

javafx {
    version = '20'
    modules = ['javafx.controls', 'javafx.fxml']
}

// 此处为修改的sourceSets配置
sourceSets {
    main {
        java {
            srcDirs = ['src/main/java', 'src/custom/java'] // 添加了自定义源码目录
        }
        resources {
            srcDirs = ['src/main/resources']
        }
    }
}

// 其他依赖、编译配置...
完整报错信息
BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 64
* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating root project 'your-project-name'.
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
    ...(省略后续堆栈信息)
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 64
    at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:196)
    at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:177)
    ...(省略后续堆栈信息)
排查与解决方向
  1. 检查Gradle运行时的JVM版本
    打开终端执行gradle -v,查看输出中的Java version是否为JDK20。如果显示为低版本(如JDK11/17),说明Gradle默认使用的JVM不支持解析JDK20的类文件,需要切换到JDK20运行Gradle。

  2. 修正IntelliJ的Gradle JVM配置
    打开IntelliJ的Settings → Build, Execution, Deployment → Build Tools → Gradle,在Gradle JVM选项中选择项目使用的JDK20,避免使用系统默认的低版本JVM。

  3. 确认gradle.properties的JDK路径配置
    检查gradle.properties中的org.gradle.java.home是否正确指向JDK20的安装目录,路径不能有拼写错误;Windows下路径含空格的话建议用双引号包裹。

  4. 排查sourceSets修改的潜在问题
    对比修改前后的build.gradle,确认除了sourceSets外没有其他误改(如插件版本、Java编译版本)。同时检查sourceSets新增的源码目录中,是否存在用更高版本JDK编译的类文件(比如JDK21),导致Gradle解析失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:02:56