Java8迁移至Java17时Gradle报Unsupported class file major version63求助
解决Gradle迁移Java17时的Unsupported class file major version 63错误
这个错误的核心原因是buildSrc模块中使用的Groovy版本不兼容Java 17,或者未正确配置Java编译兼容性,导致Groovy编译器无法处理对应版本的类文件。以下是具体解决步骤:
检查并修改buildSrc目录下的构建脚本(
build.gradle或build.gradle.kts),明确指定Java 17的兼容性,并确保Groovy版本与Gradle 7.5.1匹配:
对于Groovy脚本:plugins { id 'groovy' } repositories { mavenCentral() } dependencies { implementation gradleApi() implementation localGroovy() } java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 }对于Kotlin脚本:
plugins { `groovy` } repositories { mavenCentral() } dependencies { implementation(gradleApi()) implementation(localGroovy()) } java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 }配置Eclipse的Gradle运行环境:
- 打开Eclipse偏好设置(Window → Preferences),进入Gradle选项,确保Gradle运行时使用的JVM是Corretto 17。
- 打开项目属性(右键项目 → Properties),进入Java Build Path → Libraries,确认JRE系统库为Corretto 17。
清理并重新构建:
在终端执行命令:./gradlew clean build --refresh-dependencies之后回到Eclipse,右键项目 → Gradle → Refresh Gradle Project,重新同步项目。
如果问题仍存在,检查buildSrc的依赖中是否有使用Java 19编译的库(major version 63对应Java 19),替换为兼容Java 17的版本即可。
内容的提问来源于stack exchange,提问作者Esteban
相关产品推荐
相关产品推荐

