Gradle与Java构建版本不兼容:Unsupported Class File Major Version 61问题求助
解决Gradle构建时Jacoco报"Unsupported Class File Major Version 61"的问题
环境信息
- Gradle Wrapper配置:
distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists
- Java环境:Eclipse Temurin 17.0.5,JAVA_HOME配置正确,build.gradle中已通过toolchain指定Java17:
java { toolchain { languageVersion.set(JavaLanguageVersion.of(17)) } }
- 执行命令:
./gradlew build
问题分析
错误Unsupported Class File Major Version 61中,版本号61对应Java17的class文件格式。堆栈信息显示,问题出在Jacoco依赖的ASM库无法识别该版本的class文件,说明当前项目使用的Jacoco版本不支持Java17。
Jacoco从0.8.7版本开始正式支持Java17,若项目中Jacoco版本低于此,就会触发该兼容性问题。
解决方案
1. 更新Jacoco插件版本
在项目的build.gradle(或根项目的build.gradle)中指定兼容Java17的Jacoco版本,例如:
plugins { // 保留其他已配置的插件 id 'jacoco' version '0.8.10' // 0.8.7及以上版本均可 }
如果使用统一插件管理,可在settings.gradle的pluginManagement块中配置:
pluginManagement { plugins { id 'jacoco' version '0.8.10' } }
2. 重新执行构建
更新版本后,执行清理+构建命令确保生效:
./gradlew clean build
内容的提问来源于stack exchange,提问作者ha9u63a7
相关产品推荐
相关产品推荐

