Class文件版本不兼容:55.0需改为52.0的Java编译错误求助
解决Java版本不匹配导致的编译错误
1. 锁定Gradle的Java版本配置
Gradle可能没正确读取你的Java8环境,需要在项目配置里明确指定:
- 打开项目根目录的
build.gradle,添加或修改以下配置:
多模块项目要把这段放在根java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 }build.gradle的subprojects块里,确保所有模块统一用Java8。 - 打开
gradle.properties文件,添加Java8的绝对路径(用/usr/libexec/java_home -v 1.8命令可获取准确路径):org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home
2. 降级不兼容的依赖
org.eclipse.equinox.common:3.17.0是用Java11编译的(版本号55.0对应Java11),不兼容Java8。需要换成支持Java8的版本,比如3.14.0:
implementation 'org.eclipse.platform:org.eclipse.equinox.common:3.14.0'
3. 验证Gradle实际使用的JDK
执行命令查看Gradle当前运行的Java版本:
./gradlew -v
看输出里的JVM:字段,确认是不是Java8。如果不是,临时指定环境变量再编译:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) ./gradlew clean compileJava
要永久生效的话,编辑~/.zshrc或~/.bash_profile(看你用的shell),添加:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) export PATH=$JAVA_HOME/bin:$PATH
执行source ~/.zshrc刷新配置。
4. 清理Gradle缓存
之前缓存的Java11版本依赖会干扰编译,清理后重新下载兼容版本:
./gradlew clean build --refresh-dependencies
内容的提问来源于stack exchange,提问作者Omega
相关产品推荐
相关产品推荐

