Install Gradle on Linux
Introduction
This chapter installs Gradle on Linux for local builds and for generating the Gradle Wrapper in new repositories. You need JDK 21 installed first. On servers and CI, only ./gradlew is required—many Docker images skip a global Gradle entirely—but your laptop benefits from a global install while learning.
Prerequisites
- Linux (Debian/Ubuntu, Fedora/RHEL, or similar)
- JDK 21 (Linux Java install)
sudofor package installs (optional if using SDKMAN in home directory)- Internet access
Verify JDK 21
java -version
javac -versionSet JAVA_HOME if needed (example for OpenJDK path on Debian):
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
export PATH="$JAVA_HOME/bin:$PATH"Add those lines to ~/.bashrc or ~/.profile to persist.
Option A: SDKMAN (Recommended)
Works on most distributions; easy version switching.
# Install SDKMAN
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# Install Gradle 8.x
sdk install gradle 8.12.1
sdk default gradle 8.12.1
gradle -versionEnsure output shows Java version 21.
Option B: Distribution Packages
Debian and Ubuntu
sudo apt update
sudo apt install -y gradle
gradle -versionWarning
apt Gradle can lag behind gradle.org releases. For the newest 8.x features, prefer SDKMAN or the official ZIP. Wrapper projects still pin their own version via gradlew.
Fedora and RHEL
sudo dnf install -y gradle
gradle -versionOption C: Official ZIP (Manual)
# Download binary ZIP from gradle.org/releases (adjust version)
cd /tmp
curl -LO https://services.gradle.org/distributions/gradle-8.12.1-bin.zip
sudo mkdir -p /opt/gradle
sudo unzip -d /opt/gradle gradle-8.12.1-bin.zipAdd to ~/.bashrc:
export GRADLE_HOME=/opt/gradle/gradle-8.12.1
export PATH="$GRADLE_HOME/bin:$PATH"Reload:
source ~/.bashrc
gradle -versionWrapper-Only Workflow (CI Mindset)
On a machine with only JDK 21 and a cloned repo:
chmod +x gradlew
./gradlew -version
./gradlew buildThe Wrapper downloads Gradle into ~/.gradle/wrapper/dists on first run. No apt install gradle required—this is how many pipelines run.
Quick Wrapper Bootstrap
mkdir hello-gradle && cd hello-gradle
gradle wrapper --gradle-version 8.12.1
./gradlew -versionCommon Linux Issues
| Symptom | Cause | Fix |
|---|---|---|
gradle: command not found | PATH | Check echo $PATH; source profile |
| Wrong Java in output | JAVA_HOME unset | Export JDK 21 path |
gradlew: Permission denied | Not executable | chmod +x gradlew |
| SSL or proxy errors downloading | Corporate network | Set systemProp.https.proxyHost in ~/.gradle/gradle.properties |
| Very old Gradle from apt | Distro package age | Use SDKMAN or ZIP |
Uninstall
| Method | Command |
|---|---|
| apt | sudo apt remove gradle |
| dnf | sudo dnf remove gradle |
| SDKMAN | sdk rm gradle 8.12.1 |
| Manual | Remove /opt/gradle/... and PATH exports |
FAQ
Is global Gradle required on Linux servers?
Often no—run ./gradlew with JDK 21 only. Global install is optional ops convenience.
Where does Gradle cache dependencies?
~/.gradle/caches (similar role to Maven’s ~/.m2/repository).
Can I use the same Wrapper on Windows and Linux?
Yes. gradlew / gradlew.bat are cross-platform; commit both.