How to Install Java on Ubuntu 22.04

Published on

6 min read

Install Java on Ubuntu 22.04

Java is a popular programming language and computing platform used for building applications and software solutions. Java runs on all major operating systems and devices. You can find applications developed in Java on your laptop, phone, and game console.

This guide describes how to install various versions of Java on Ubuntu 22.04.

Before You Begin

There are several different implementations of Java. OpenJDK and Oracle JDK are the two main implementations of Java, with little or no differences between them and are functionally almost the same. The main difference is that OpenJDK is an open-source project while Oracle JDK requires a paid license or permits only non-commercial use of the software, such as development or personal use. Also, Oracle JDK has a few additional commercial features that are unavailable with OpenJDK.

The default Ubuntu 22.04 repositories include two OpenJDK packages, Java Runtime Environment (JRE) and Java Development Kit (JDK). The JRE consists of the Java virtual machine (JVM), classes, and binaries that allow you to run Java programs. The JDK includes the JRE and development/debugging tools and libraries necessary to build Java applications.

If you’re unsure which Java package to install, the general recommendation is to install to the latest or the default OpenJDK version. However, some Java applications may require a specific version, so it is best to consult the application documentation.

Installing OpenJDK in Ubuntu

Before installing Java, you can check if it is already installed on your system by typing:

java -version

If Java is not installed on your system, the output of the command above will tell you that the command java is not found. Otherwise, it will print the installed Java version.

When installing new packages, you should always first refresh the local packages index by running the following commands as a user with sudo privileges or root:

sudo apt update

At the time of writing, there are four long-term supported (LTS) versions of Java: 8, 11, 17, and 21. The default Java development and runtime in Ubuntu 22.04 is set to Java 17, meaning you will get Java 17 installed on your system if you install the default-jre package.

Execute the following command to install OpenJDK version 17:

sudo apt install openjdk-17-jdk
If you want to install another version, replace the version number in the command above. For example, if your application requres Java 11, install the openjdk-11-jdk package.

Once the installation is complete, you can verify it by checking the Java version:

java -version

The output should look something like this:

openjdk version "17.0.8.1" 2023-08-24
OpenJDK Runtime Environment (build 17.0.8.1+1-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 17.0.8.1+1-Ubuntu-0ubuntu122.04, mixed mode, sharing)

That’s it! You have successfully installed Java on your Ubuntu machine.

JRE is included in the JDK package. If you need only JRE, install the openjdk-17-jre package. For minimal Java runtime, install the openjdk-17-jdk-headless package.

Installing Oracle Java in Ubuntu

The Oracle JDK packages are not available in the default Ubuntu repositories. If, for some reason, your application requires Oracle Java, you can install Oracle Java either by downloading the file from the Oracle website or by using a third-party repository such as Linux Uprising PPA. In this example, we’ll download the Debian package from the Oracle website.

Visit the Oracle Java Archive site and open the download page of the Java version you need.

oracle java

We’ll download and install version 21. Click the Linux x64 Debian Package from the file list to download the .deb package.

java 21

If you’re installing Java on a server, use the wget command to download the file. Right-click on the link to copy the address and paste it after wget:

wget https://download.oracle.com/java/21/archive/jdk-21.0.1_linux-x64_bin.deb

Once the file is downloaded, execute the following command to install Oracle JDK on your system:

sudo apt install ./jdk-21.0.1_linux-x64_bin.deb

Replace the filename in the command above if you downloaded another Java version.

Setting the Default Java Version

The default version of Java is used by default when debugging, building, or running Java-based applications. If you have multiple Java versions installed on your Ubuntu system, you can check which version is set as the default one by typing:

java -version

To change the default version, use the update-alternatives command:

sudo update-alternatives --config java

You will be presented with a list of all installed Java versions. For example, if you have OpenJDK 11 and 17 an Oracle JDK 21 installed, the output will look something like the below:

There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/jdk-21-oracle-x64/bin/java       352329728 auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      manual mode
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711      manual mode
  3            /usr/lib/jvm/jdk-21-oracle-x64/bin/java       352329728 manual mode

Press <enter> to keep the current choice[*], or type selection number: 

Enter the number of the version you want to be used as the default and press Enter.

Verify that the default version has been changed by executing:

java -version

Setting the JAVA_HOME Environment Variable

The JAVA_HOME environment variable is used by some Java applications to determine the JDK installation location.

To set the JAVA_HOME variable, first find the Java installation path with update-alternatives:

sudo update-alternatives --config java

In this example, the paths to the different java binaries are as follows:

  • OpenJDK 21 is located at /usr/lib/jvm/jdk-21-oracle-x64/bin/java
  • OpenJDK 17 is located at /usr/lib/jvm/java-17-openjdk-amd64/bin/java
  • OpenJDK 11 is located at /usr/lib/jvm/java-11-openjdk-amd64/bin/java
The java binary is located at JAVA_HOME/bin/java. So we should set the JAVA_HOME to one of the paths above, excluding the bin/java part.

Once you have found the path of your preferred Java installation, open the /etc/environment file:

sudo nano /etc/environment

Assuming you want to set JAVA_HOME to point to OpenJDK 17, add the following line at the end of the file:

/etc/environment
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

For changes to take effect on your current session, you can either log out and log in or run the following source command:

source /etc/environment

To verify that the JAVA_HOME environment variable was correctly set, type:

echo $JAVA_HOME

You should see the path to the Java installation:

/usr/lib/jvm/java-17-openjdk-amd64
/etc/environment is a system-wide configuration file, which is used by all users. If you want to set the JAVA_HOME variable on a per-user basis, then add the line to the .bashrc or any other configuration file that is loaded when the user logs in.

Uninstalling Java

You can uninstall Java like any other package installed with apt .

For example, to uninstall the openjdk-17-jdk package, enter:

sudo apt remove openjdk-17-jdk

Conclusion

We have shown you how to install OpenJDK 17 and OpenJDK 11 from the default Ubuntu 22.04 repositories using the apt package manager and how to download and install the Oracle JDK.

If you have any questions, feel free to leave a comment.