Chapter 2. Installing Red Hat build of OpenJDK 17 on Red Hat Enterprise Linux Red Hat build of OpenJDK is an environment for developing and running a wide range of platform-agnostic applications, from mobile applications to desktop and web applications and enterprise systems. Red Hat provides an open source implementation of the Java Platform SE (Standard Edition) called Red Hat build of OpenJDK. Applications are developed using the JDK (Java Development Kit). Applications are run on a JVM (Java Virtual Machine), which is included in the JRE (Java Runtime Environment) and the JDK. There is also a headless version of Java which has the smallest footprint and does not include the libraries needed for a user interface. The headless version is packaged in the headless subpackage. Note If you are unsure whether you need the JRE or the JDK, it is recommended that you install the JDK. The following sections provide instructions for installing Red Hat build of OpenJDK on Red Hat Enterprise Linux. Note You can install multiple major versions of Red Hat build of OpenJDK on your local system. If you need to switch from one major version to another major version, issue the following command in your command-line interface (CLI) and then follow the onscreen prompts: 2.1. Installing a JRE on RHEL by using yum You can install Red Hat build of OpenJDK Java Runtime Environment (JRE) by using the yum system package manager. Prerequisites Logged in as a user with root privileges on the system. Registered your local system to your Red Hat Subscription Manager account. See Using Red Hat Subscription Manager in the Getting Started with RHEL System Registration guide. Procedure Run the yum command, specifying the package you want to install: Check that the installation works: Note If the output from the command shows that you have a different major version of Red Hat build of OpenJDK checked out on your system, you can enter the following command in your CLI to switch your system to use Red Hat build of OpenJDK 17: 2.2. Installing a JRE on RHEL by using an archive You can install Red Hat build of OpenJDK Java Runtime Environment (JRE) by using an archive file. This is useful if the Java administrator does not have root privileges. Note To ease the upgrades for later versions create a parent directory to contain your JREs and create a symbolic link to the latest JRE using a generic path. Procedure Create a directory to where you want to download the archive file, and then navigate to that directory on your command-line interface (CLI). For example: Navigate to the Software Downloads page on the Red Hat Customer Portal. Select the latest version of Red Hat build of OpenJDK 17 from the Version drop-down list, and then download the JRE archive for Linux to your local system. Extract the contents of the archive to a directory of your choice: Create a generic path by using symbolic links to your JRE for easier upgrades: Configure the JAVA_HOME environment variable: Verify that JAVA_HOME environment variable is set correctly: Note When installed using this method, Java will only be available for the current user. Add the bin directory of the generic JRE path to the PATH environment variable: Verify that java -version works without supplying the full path: Note You can ensure that JAVA_HOME environment variable persists for the current user by exporting the environment variable in ~/.bashrc . 2.3. Installing Red Hat build of OpenJDK on RHEL by using yum You can install Red Hat build of OpenJDK by using the yum system package manager. Prerequisites Logged in as a user with root privileges. Registered your local system to your Red Hat Subscription Manager account. See Using the Red Hat Subscription Manager in the Getting Started with RHEL System Registration guide. Procedure Run the yum command, specifying the package you want to install: Check that the installation works: 2.4. Installing Red Hat build of OpenJDK on RHEL by using an archive You can install Red Hat build of OpenJDK with an archive. This is useful if the Java administrator does not have root privileges. Note To ease upgrades, create a parent directory to contain your JREs and create a symbolic link to the latest JRE using a generic path. Procedure Create a directory to where you want to download the archive file, and then navigate to that directory on your command-line interface (CLI). For example: Navigate to the Software Downloads page on the Red Hat Customer Portal. Select the latest version of Red Hat build of OpenJDK 17 from the Version drop-down list, and then download the JDK archive for Linux to your local system. Extract the contents of the archive to a directory of your choice: Create a generic path by using symbolic links to your JDK for easier upgrades: Configure the JAVA_HOME environment variable: Verify that JAVA_HOME environment variable is set correctly: Note When installed using this method, Java will only be available for the current user. Add the bin directory of the generic JRE path to the PATH environment variable: Verify that java -version works without supplying the full path: Note You can ensure that JAVA_HOME environment variable persists for the current user by exporting the environment variable in ~/.bashrc . 2.5. Installing multiple major versions of Red Hat build of OpenJDK on RHEL by using yum You can install multiple versions of Red Hat build of OpenJDK by using the yum system package manager. Prerequisites A Red Hat Subscription Manager (RHSM) account with an active subscription that provides access to a repository that provides the Red Hat build of OpenJDK you want to install. You must have root privileges on the system. Procedure Run the following yum commands to install the package: For Red Hat build of OpenJDK 17 For Red Hat build of OpenJDK 11 For Red Hat build of OpenJDK 8 After installing, check the available Java versions: Check the current java version: Note You can install multiple major versions of Red Hat build of OpenJDK on your local system. If you need to switch from one major version to another major version, issue the following command in your command-line interface (CLI) and then follow the onscreen prompts: Additional resources You can configure the default Java version to use by using java --alternatives . For more information, see Non-interactively selecting a system-wide Red Hat build of OpenJDK version on RHEL . 2.6. Installing multiple major versions of Red Hat build of OpenJDK on RHEL by using an archive You can install multiple major versions of Red Hat build of OpenJDK by using the same procedures found in Installing a JRE on RHEL by using an archive or Installing Red Hat build of OpenJDK on RHEL by using an archive using multiple major versions . Note For instructions how to configure the default Red Hat build of OpenJDK version for the system, see Non-interactively selecting a system-wide Red Hat build of OpenJDK version on RHEL . Additional resources For instructions on installing a JRE, see Installing a JRE on RHEL by using an archive . For instructions on installing a JDK, see Installing Red Hat build of OpenJDK on RHEL by using an archive . 2.7. Installing multiple minor versions of Red Hat build of OpenJDK on RHEL by using yum You can install multiple minor versions of Red Hat build of OpenJDK on RHEL. This is done by preventing the installed minor versions from being updated. Prerequisites Choose system-wide version of Red Hat build of OpenJDK from Non-interactively selecting a system-wide Red Hat build of OpenJDK version on RHEL . Procedure Add the installonlypkgs option in the /etc/yum.conf directory to specify the Red Hat build of OpenJDK packages that yum can install but not update. Updates will install new packages while leaving the old versions on the system. The different minor versions of Red Hat build of OpenJDK can be found in the /usr/lib/jvm/ <minor version> files. For example, the following shows part of /usr/lib/jvm/java-17.0.2-openjdk : 2.8. Installing multiple minor versions of Red Hat build of OpenJDK on RHEL by using an archive Installing multiple minor versions is the same as Installing a JRE on RHEL using an archive or Installing Red Hat build of OpenJDK on RHEL 8 using an archive using multiple minor versions. Note For instructions how to choose a default minor version for the system, see Non-interactively selecting a system-wide Red Hat build of OpenJDK version on RHEL . Additional resources For instructions on installing a JRE, see Installing a JRE on RHEL by using an archive . For instructions on installing a JDK, see Installing Red Hat build of OpenJDK on RHEL by using an archive .

Commands:
sudo update-alternatives --config 'java'
sudo yum install java-17-openjdk
java -version openjdk version "17.0.2" 2022-01-18 LTS OpenJDK Runtime Environment 21.9 (build 17.0.2+8-LTS) OpenJDK 64-Bit Server VM 21.9 (build 17.0.2+8-LTS, mixed mode, sharing)
sudo update-alternatives --config 'java'
mkdir ~/jres cd ~/jres
tar -xf java-17-openjdk-17.0.2.0.8-3.portable.jre.el7.x86_64.tar.xz -C ~/jres
ln -s ~/jres/java-17-openjdk-17.0.2.0.8-3.portable.jdk.el7.x86_64 ~/jres/java-17
export JAVA_HOME=~/jres/java-17
printenv | grep JAVA_HOME JAVA_HOME=~/jres/java-17
export PATH="USDJAVA_HOME/bin:USDPATH"
java -version openjdk version "17.0.2" 2022-01-18 LTS OpenJDK Runtime Environment 21.9 (build 17.0.2+8-LTS) OpenJDK 64-Bit Server VM 21.9 (build 17.0.2+8-LTS, mixed mode, sharing)
sudo yum install java-17-openjdk-devel
javac -version javac 17.0.2
mkdir ~/jdks cd ~/jdks
tar -xf java-17-openjdk-17.0.2.0.8-3.portable.jre.el7.x86_64.tar.xz -C ~/jdks
ln -s ~/jdks/java-17-openjdk-17.0.2.0.8-3.portable.jdk.el7.x86_64 ~/jdks/java-17
export JAVA_HOME=~/jdks/java-17
printenv | grep JAVA_HOME JAVA_HOME=~/jdks/java-17
export PATH="USDJAVA_HOME/bin:USDPATH"
java -version openjdk version "17.0.2" 2022-01-18 LTS OpenJDK Runtime Environment 21.9 (build 17.0.2+8-LTS) OpenJDK 64-Bit Server VM 21.9 (build 17.0.2+8-LTS, mixed mode, sharing)
sudo yum install java-17-openjdk
sudo yum install java-11-openjdk
sudo yum install java-1.8.0-openjdk
sudo yum list installed "java*" Installed Packages java-1.8.0-openjdk.x86_64 1:1.8.0.322.b06-2.el8_5 @rhel-8-for-x86_64-appstream-rpms java-11-openjdk.x86_64 1:11.0.14.0.9-2.el8_5 @rhel-8-for-x86_64-appstream-rpms java-17-openjdk.x86_64 1:17.0.2.0.8-4.el8_5 @rhel-8-for-x86_64-appstream-rpms
java -version openjdk version "17.0.2" 2022-01-18 LTS OpenJDK Runtime Environment 21.9 (build 17.0.2+8-LTS) OpenJDK 64-Bit Server VM 21.9 (build 17.0.2+8-LTS, mixed mode, sharing)
sudo update-alternatives --config 'java'
installonlypkgs=java- <version> --openjdk,java- <version> --openjdk-headless,java- <version> --openjdk-devel
rpm -qa | grep java-17.0.2-openjdk java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64 java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64
/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64/bin/java -version openjdk version "17.0.2" 2022-01-18 LTS OpenJDK Runtime Environment 21.9 (build 17.0.2+8-LTS) OpenJDK 64-Bit Server VM 21.9 (build 17.0.2+8-LTS, mixed mode, sharing) /usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin/java -version openjdk version "17" 2021-10-19 OpenJDK Runtime Environment 21.9 (build 17+35) OpenJDK 64-Bit Server VM 21.9 (build 17+35, mixed mode, sharing)