which gradle 返回当前 PATH 中首个 gradle 可执行文件路径(如 /usr/local/bin/gradle),通常是软链接,代表命令行实际调用的入口;若为空则未配置 PATH 或使用 Gradle Wrapper。

用 which gradle 查命令行调用的 Gradle 可执行文件位置
终端里输入 which gradle,返回的是 shell 当前 PATH 中第一个匹配的 gradle 可执行文件路径,比如 /usr/local/bin/gradle。这个路径通常是软链接(symlink),指向真实安装目录下的 bin/gradle。
常见误区:它不等于 Gradle 的「解压根目录」,只是入口。但对绝大多数用户来说,这就是你“实际在用”的 Gradle 安装位置——因为命令行、IDE、CI 脚本调用的都是它。
- 如果返回空,说明
gradle不在 PATH 中,可能没配置环境变量,或用了 wrapper(见下一条) - Mac 上通过 Homebrew 安装的,通常指向
/opt/homebrew/bin/gradle(Apple Silicon)或/usr/local/bin/gradle(Intel),再ls -l就能看到真实路径 - Windows 用户请用
where gradle替代which
用 gradle -v 看 Gradle 解压根目录和用户家目录
gradle -v 输出里有两处关键路径:
-
Gradle home:即解压后的根目录,例如
Gradle home: /opt/gradle/gradle-8.10—— 这才是你下载解压后真正的安装目录 -
Gradle user home:即缓存和全局配置所在目录,例如
Gradle user home: /Users/xxx/.gradle—— 它默认独立于安装目录,可被-g或GRADLE_USER_HOME修改
注意:gradle -v 必须能成功执行,否则说明当前环境根本没找到可用的 Gradle(可能是 wrapper 模式、PATH 错误,或权限问题)。
Android Studio 里用的是哪个 Gradle?
Android Studio 默认不依赖系统 PATH 中的 gradle,而是用项目级 wrapper 或手动指定的本地分发版:
- 检查项目根目录是否有
gradle/wrapper/gradle-wrapper.properties,里面distributionUrl指向的 zip 包解压后就是实际使用的 Gradle 目录(wrapper 会自动下载并缓存到~/.gradle/wrapper/dists/) - 在 Android Studio 设置中(Preferences → Build, Execution, Deployment → Build Tools → Gradle),若选了
Use local gradle distribution,则填入的路径就是它实际加载的安装目录 - 即使你系统 PATH 里装了 Gradle 8.10,AS 项目仍可能跑在 wrapper 指定的 7.4 —— 二者完全隔离
容易忽略的关键点
Gradle 实际运行时,真正起作用的是「哪个二进制」+「哪个 GRADLE_USER_HOME」+「是否用了 wrapper」三者共同决定的,不是单看一个路径就能断言的。
尤其要注意:./gradlew 脚本内部硬编码了 wrapper 的 Gradle 版本和缓存路径,它会绕过系统 PATH 和 GRADLE_HOME;而直接敲 gradle 命令则只认 PATH 和 GRADLE_HOME。两者混用时,gradle -v 和 ./gradlew -v 输出很可能完全不同。

















