How to Install Java on Ubuntu
Ubuntu ships OpenJDK in its default package repository. One apt command installs a working JDK. Java 21 is available on Ubuntu 22.04 and later; on 20.04, use the Adoptium PPA or a manual tarball install for 21.
Ubuntu 24.04 (Noble) and 22.04 (Jammy)
sudo apt update
sudo apt install openjdk-21-jdk -y
java -version
# openjdk version "21.0.x"
Ubuntu 20.04 (Focal) — Java 21 via Adoptium PPA
Ubuntu 20.04's default repos only ship Java 11 and 17. For Java 21:
# Add Adoptium repository
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public \
| sudo gpg --dearmor -o /usr/share/keyrings/adoptium.gpg
echo "deb [signed-by=/usr/share/keyrings/adoptium.gpg] \
https://packages.adoptium.net/artifactory/deb \
$(awk -F= '/^VERSION_CODENAME/{print $2}' /etc/os-release) main" \
| sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install temurin-21-jdk -y
java -version
Setting JAVA_HOME
echo "export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))" >> ~/.bashrc
source ~/.bashrc
echo $JAVA_HOME
Install multiple versions
sudo apt install openjdk-17-jdk openjdk-21-jdk -y
Switch between them:
sudo update-alternatives --config java
You'll see a numbered list — enter the number for the version you want.
JDK vs JRE
openjdk-21-jdk— includesjavac(compiler),jdb(debugger), all dev tools. Install this for development.openjdk-21-jre— only the runtime. Smaller, sufficient for running pre-compiled Java applications.
Verify
java -version # runtime
javac -version # compiler (JDK only)
echo $JAVA_HOME # should not be empty
Install Maven or Gradle after Java
sudo apt install maven -y # Maven
# For Gradle: download from gradle.org or use SDKMAN:
curl -s "https://get.sdkman.io" | bash
source ~/.sdkman/bin/sdkman-init.sh
sdk install gradle