Windows PowerShell下Gradle构建失败排查:已尝试Java 8与Gradle更新
解决Gradle构建时Java 7支持弃用的报错问题
你遇到的核心问题是Gradle仍在以Java 7环境执行构建,哪怕你已经切换到了Java 8。下面是一步步的排查和解决方法:
1. 确认PowerShell中的Java环境是否真正生效
很多时候切换JDK后,PowerShell不会立即加载新的环境变量,先做个验证:
- 在PowerShell中执行:
确保两个命令的输出都是Java 8的版本(比如java -version javac -version1.8.xx)。如果不是,重启PowerShell或者手动刷新环境变量后再试。
2. 检查项目的Java版本配置
报错指向assembly/build.gradle第10行,大概率是这里的Java编译版本配置还是1.7。打开这个文件,找到类似下面的代码:
sourceCompatibility = 1.7 targetCompatibility = 1.7
把它们改成Java 8的版本:
sourceCompatibility = 1.8 targetCompatibility = 1.8
同时别忘了检查根项目的build.gradle,看看有没有全局的Java版本配置,确保整个项目统一使用1.8。
3. 强制Gradle使用指定的Java 8 JDK
如果上面的配置修改后还是不行,可以直接告诉Gradle用哪个JDK:
在项目根目录创建(如果没有的话)gradle.properties文件,添加以下内容(替换成你自己的Java 8安装路径):
org.gradle.java.home=C:\\Program Files\\Java\\jdk1.8.0_301
Windows路径需要用双反斜杠转义,确保路径指向你实际安装的Java 8目录。
4. 清理缓存并重新构建
旧的Gradle缓存可能残留了Java 7的配置,先清理再构建:
./gradlew clean ./gradlew build
另外提个小细节:你执行的./gradlew build.gradle命令其实没必要指定build.gradle文件,直接运行./gradlew build即可触发默认构建任务。
内容的提问来源于stack exchange,提问作者sumeet pathak




