Eclipse中Gradle构建失败,报错:The supplied phased action failed with an exception.
报错里的Unsupported class file major version 65对应Java21,核心问题是你使用的Gradle 7.5版本不支持Java21及更高版本。哪怕系统装了Java24,旧版Gradle无法识别高版本Java的类文件格式,也没法在Java21+环境下正常运行。
升级Gradle版本到8.0及以上
Gradle从8.0开始正式支持Java21,8.7及以上版本支持Java23/24。修改项目根目录gradle/wrapper/gradle-wrapper.properties里的distributionUrl,比如换成8.7版本:distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip配置Eclipse Buildship使用正确的Gradle版本
打开Eclipse的Window > Preferences > Gradle,选择Use Gradle wrapper from project,这样会自动用你刚才修改的项目内置Gradle版本,避免Eclipse调用旧版Gradle运行构建。明确项目的Java兼容性设置
在项目的build.gradle里添加或修改Java版本配置,确保和你实际使用的Java版本匹配:java { sourceCompatibility = JavaVersion.VERSION_21 // 或你需要的版本,比如VERSION_24 targetCompatibility = JavaVersion.VERSION_21 }清理Gradle缓存
删除报错信息里提到的缓存目录C:\Users\mmo\.gradle\caches\7.5\scripts\exvtfib8x4d7xhxmo1dku6nlm,然后重新执行构建,避免旧缓存干扰。
你之前的误区在于:Java高版本能兼容低版本类文件,但Gradle本身的版本对Java版本有严格要求——旧版Gradle不认识新版Java的类文件格式,哪怕你用JAVA_HOME指定了高版本JDK,Gradle7.5也没法处理Java21的类文件,必须升级Gradle版本才能解决。
内容的提问来源于stack exchange,提问作者mmo

