Could not compile initialization script 'C:...\ijMapper1.gradle'. > startup failed: General error during semantic analysis: Unsupported class file major version 65
此错误是由于 Java 版本与构建工具(如 Gradle/Groovy)的兼容性问题 导致的。"major version 65" 对应 Java 21,但当前工具链可能仅支持低版本 Java(如 Java 17 或更低)。以下是具体解决方案:
1. 确认 Java 版本与环境配置
- 检查当前 JDK 版本:
如果输出类似java -versionopenjdk 21.0.1,则表明使用了 Java 21。 - 降级 JDK(可选):
- 若需兼容旧版工具链,建议降级至 Java 17 或更低版本(Java 17 对应 major version 61)。
- 通过环境变量
JAVA_HOME和PATH指向目标 JDK 路径。
2. 升级构建工具链以支持 Java 21
根据错误日志,问题可能由以下原因引发:
- Gradle 版本过低:Gradle 7.x 最高支持 Java 17,而 Gradle 8.3+ 开始支持 Java 21。
- Groovy 版本过低:Groovy 4.0+ 兼容 Java 17+,若项目中使用了旧版 Groovy(如 3.x),需升级依赖。
操作步骤:
- 升级 Gradle:
- 修改
gradle-wrapper.properties文件中的版本号:distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip - 或通过命令行更新:
./gradlew wrapper --gradle-version=8.5
- 修改
- 升级 Groovy 依赖(如适用):
dependencies { implementation 'org.codehaus.groovy:groovy-all:4.0.15' }
3. 清理构建缓存
旧版本的构建缓存可能导致兼容性问题。执行以下命令清理并重新构建:
./gradlew clean # 清理缓存
./gradlew --stop # 停止守护进程
./gradlew --no-daemon # 禁用守护进程(避免残留影响)
4. 检查 IDE 配置
- IntelliJ/Android Studio:
- 确认 Project SDK 和 Gradle JDK 设置与目标版本一致(路径:
File > Project Structure > Project/Platform Settings)。 - 禁用 Gradle Daemon(路径:
Settings > Build Tools > Gradle > Gradle Daemon)。
- 确认 Project SDK 和 Gradle JDK 设置与目标版本一致(路径:
5. 其他可能性
- 第三方插件兼容性:某些插件(如 Parboiled)可能尚未支持 Java 21,需检查其官方文档或升级至支持版本。
- 脚本语法错误:检查
ijMapper1.gradle文件是否存在语法错误(如无效的插件声明或方法调用)。
总结建议
- 优先升级工具链(Gradle 8.5 + Groovy 4.0 + Java 21),确保版本兼容性。
- 若无法升级,降级 Java 至 17 或更低版本,并调整构建配置。
- 清理缓存并检查 IDE 设置,避免残留配置干扰。
通过上述步骤,可解决因 Java 21 与旧版 Gradle/Groovy 不兼容导致的编译错误。