gradle 不设置 java_home,仅读取系统已配置的 java_home;若未正确配置 java_home 和 path(需包含 %java_home%in),会导致 gradle 找不到 java 或版本不匹配,常见错误包括 unsupportedclassversionerror 等,且修改 build.gradle 中 environment 无效,必须重启终端和 ide 生效。

Gradle 本身不设置 JAVA_HOME,它只读取系统已配置的 JAVA_HOME —— 如果没配对或根本没配,gradle 就会报错或用错 JDK 版本。
为什么 gradle 找不到 Java 或提示版本不匹配
常见现象包括:UnsupportedClassVersionError、Could not determine java version、java command not found。根本原因不是 gradle 配错了,而是 Windows 没正确设置 JAVA_HOME,或者 Path 里没包含 %JAVA_HOME%in。
- Gradle 启动脚本(
gradlew.bat)第一件事就是检查JAVA_HOME;找不到就 fallback 到java命令,而后者又依赖Path - Android 项目还额外依赖
ANDROID_HOME和ANDROID_SDK_ROOT,但它们不影响 gradle 自身运行,只影响构建安卓任务 - 如果你用的是 Android Studio 自带 JDK(路径含
jbr),别误填成jdk或带in的子目录
必须配对的两个环境变量:JAVA_HOME 和 Path
只设 JAVA_HOME 不够,Path 必须显式加入 %JAVA_HOME%in,否则命令行敲 java -version 都失败,gradle 更不可能跑起来。
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
-
JAVA_HOME值必须是 JDK 根目录(例如C:Program FilesAndroidAndroid Studiojbr),不能带in,也不能是 JRE -
Path中新增一项:%JAVA_HOME%in;建议把它移到Path列表顶部,避免被旧版 JDK 覆盖 - 验证方式:新开一个 cmd 窗口,执行
echo %JAVA_HOME%和java -version,两者都应正常输出
Gradle 项目里硬编码 JAVA_HOME 是掩耳盗铃
有人在 build.gradle 里写 environment 'JAVA_HOME', 'C:\...',这只能影响 Gradle 进程启动时的子进程(比如 exec 任务),对 gradle 自身的 JVM 启动完全无效。
- Gradle 运行时用的 JVM,由启动脚本或 wrapper 决定,和 build script 无关
- 真正生效的只有系统级
JAVA_HOME+Path,或手动改gradlew.bat(不推荐) - 如果团队协作,靠 build script 设置环境变量会导致本地能跑、CI 失败,因为 CI 环境不会读你那行
environment
最容易被忽略的一点:改完环境变量后,所有已打开的终端、IDE(如 IntelliJ)、命令行窗口都得重启 —— 它们不会自动 reload 系统变量。哪怕只差这一步,gradle -v 就永远显示旧版本或报错。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










