gradle 安装需先确保 java_home 指向完整 jdk(非 jre)且版本 ≥17,再按场景选 sdkman、手动解压或 apt 安装;务必验证 gradle -v 与 ./gradlew -v 一致,并检查代理、kotlin dsl 兼容性及 wrapper 使用。

gradle 不是“装上就能用”的工具,它强依赖 Java 环境,且不同安装方式对后续升级、多版本共存、权限控制影响很大。没配好 JAVA_HOME,90% 的 gradle -v 报错都白折腾。
确认 Java 环境是否真正就绪
gradle 启动时会读取 JAVA_HOME,不是只看 java -version 能运行就完事。常见错误现象:
- gradle -v 报错 Could not determine java version from '17.0.1'(其实是 JAVA_HOME 指向了 JRE 或不完整 JDK)
- 或直接提示 No Java runtime present(macOS 常见,Linux 多因软链断裂)
必须验证这两点:
-
echo $JAVA_HOME输出应为 JDK 根目录(如/usr/lib/jvm/java-17-openjdk-amd64),不能是jre子目录 -
$JAVA_HOME/bin/java -version和java -version输出一致且版本 ≥ 8(推荐 ≥ 17) - 若用
apt install openjdk-17-jdk安装,通常已自动设好JAVA_HOME;若手动解压 JDK,务必自己 export
选哪种安装方式取决于你管不管版本和权限
别盲目跟教程走,先看场景: - 需要频繁切换gradle 版本(比如同时维护多个老项目)→ 用 sdk install gradle
- 在 CI/CD 服务器或容器里部署,追求确定性 → 手动解压 + 固定路径 + 全局 /etc/profile
- Ubuntu/Debian 临时测试,不介意版本旧(当前 APT 源里仍是 gradle 8.2,而官网最新是 8.10)→ apt install gradle 可行,但别用于生产构建
关键差异点:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
sdkman安装的gradle二进制在~/.sdkman/candidates/gradle/current/bin/gradle,只对当前用户生效 - 手动解压到
/opt/gradle/current并写入/etc/profile,所有用户可用,但需sudo权限 - APT 安装会把命令放在
/usr/bin/gradle,但实际是 shell wrapper,内部调用的 JVM 和参数不可控
gradle -v 成功但 gradle build 失败?检查这三个地方
很多用户卡在这一步,以为装好了,一跑任务就挂:
- ~/.gradle/gradle.properties 里写了代理但代理已失效,导致下载依赖超时(错误里含 Connect timed out 或 PKIX path building failed)
- build.gradle 用了 Kotlin DSL(build.gradle.kts),但 gradle 版本太低(Kotlin 1.9+ 需 Gradle ≥ 8.4)
- 项目根目录有 gradle/wrapper/gradle-wrapper.jar,此时执行 ./gradlew build 才是标准做法,直接用系统级 gradle 命令反而可能版本不匹配
最稳妥验证方式:
gradle init --type java-application cd demo gradle build能生成
build/libs/demo-1.0-SNAPSHOT.jar 才算真正通路。
PATH 和 GRADLE_HOME 设置最容易漏掉的细节
-export PATH=$GRADLE_HOME/bin:$PATH 必须写在 export GRADLE_HOME=... 之后,否则变量未展开
- 不要用 ~ 代替绝对路径(export GRADLE_HOME=~/gradle 在 /etc/profile 中无效)
- 如果改的是 ~/.bashrc,记得 source ~/.bashrc;如果改的是 /etc/profile,新终端才生效,当前终端要 source /etc/profile
- 检查是否重复添加:echo $PATH | tr ':' '\n' | grep gradle,避免 bin 目录出现两次
真正的难点不在“怎么装”,而在“装完怎么不被项目反杀”——gradle wrapper 机制、JVM 参数透传、离线模式开关、本地仓库路径迁移,这些才是日常踩坑主力。别急着跑构建,先让 gradle -v 和 ./gradlew -v 输出一致。










