Chapter 1. Interactively selecting a system-wide OpenJDK version on RHEL
If you have multiple versions of OpenJDK installed on RHEL, you can interactively select the default OpenJDK version to use system-wide.
If you do not have root privileges, you can select an OpenJDK version by configuring the JAVA_HOME
environment variable.
Prerequisites
- You must have root privileges on the system.
-
Multiple versions of OpenJDK were installed using the
yum
package manager.
Procedure
View the OpenJDK versions installed on the system.
$ yum list installed "java*"
A list of installed Java packages appears.
Installed Packages java-1.8.0-openjdk.x86_64 1:1.8.0.242.b08-0.el8_1 @rhel-8-appstream-rpms java-1.8.0-openjdk-headless.x86_64 1:1.8.0.242.b08-0.el8_1 @rhel-8-appstream-rpms java-11-openjdk.x86_64 1:11.0.6.10-0.el8_1 @rhel-8-appstream-rpms java-11-openjdk-headless.x86_64 1:11.0.6.10-0.el8_1 @rhel-8-appstream-rpms javapackages-filesystem.noarch 5.3.0-1.module+el8+2447+6f56d9a6 @rhel-8-appstream-rpms
Display the OpenJDK versions that can be used for a specific
java
command and select the one to use:$ sudo alternatives --config java There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- *+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el8_1.x86_64/jre/bin/java) 2 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.6.10-0.el8_1.x86_64/bin/java) Enter to keep the current selection[+], or type selection number: 1
- The current system-wide OpenJDK version is marked with an asterisk.
-
The current OpenJDK version for the specified
java
command is marked with a plus sign.
Press Enter to keep the current selection or enter the Selection number of the OpenJDK version you want to select followed by the Enter key.
The default OpenJDK version for the system is the selected version.
Verify that the chosen binary is selected.
$ java -version openjdk version "1.8.0_242" OpenJDK Runtime Environment (build 1.8.0_242-b08) OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
NoteThis procedure configures the
java
command. Thenjavac
command can be set up in a similar way, but it operates independently.If you have OpenJDK installed,
alternatives
provides more possible selections. In particular, thejavac
master alternative switches many binaries provided by the-devel
sub-package.Even if you have OpenJDK installed,
java
(and other JRE masters) andjavac
(and other OpenJDK masters) still operate separately, so you can have different selections for JRE and JDK. Thealternatives --config java
command affects thejre
and its associated slaves.If you want to change the
Java
, use thejavac alternatives
command. The--config javac
utility configures theSDK
and related slaves. To see all possible masters, usealternatives --list
and check all of thejava
,javac
,jre
, andsdk
masters.