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 — includes javac (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