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)
  • sudo for package installs (optional if using SDKMAN in home directory)
  • Internet access

Verify JDK 21

bash
java -version
javac -version

Set JAVA_HOME if needed (example for OpenJDK path on Debian):

bash
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.

Works on most distributions; easy version switching.

bash
# 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 -version

Ensure output shows Java version 21.

Option B: Distribution Packages

Debian and Ubuntu

bash
sudo apt update
sudo apt install -y gradle
gradle -version

Warning

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

bash
sudo dnf install -y gradle
gradle -version

Option C: Official ZIP (Manual)

bash
# 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.zip

Add to ~/.bashrc:

bash
export GRADLE_HOME=/opt/gradle/gradle-8.12.1
export PATH="$GRADLE_HOME/bin:$PATH"

Reload:

bash
source ~/.bashrc
gradle -version

Wrapper-Only Workflow (CI Mindset)

On a machine with only JDK 21 and a cloned repo:

bash
chmod +x gradlew
./gradlew -version
./gradlew build

The Wrapper downloads Gradle into ~/.gradle/wrapper/dists on first run. No apt install gradle required—this is how many pipelines run.

Quick Wrapper Bootstrap

bash
mkdir hello-gradle && cd hello-gradle
gradle wrapper --gradle-version 8.12.1
./gradlew -version

Common Linux Issues

SymptomCauseFix
gradle: command not foundPATHCheck echo $PATH; source profile
Wrong Java in outputJAVA_HOME unsetExport JDK 21 path
gradlew: Permission deniedNot executablechmod +x gradlew
SSL or proxy errors downloadingCorporate networkSet systemProp.https.proxyHost in ~/.gradle/gradle.properties
Very old Gradle from aptDistro package ageUse SDKMAN or ZIP

Uninstall

MethodCommand
aptsudo apt remove gradle
dnfsudo dnf remove gradle
SDKMANsdk rm gradle 8.12.1
ManualRemove /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.

What comes next?

IntelliJ IDEA and Gradle.