Installing and using OpenJDK 8 for RHEL

OpenJDK 8

Red Hat Developer Customer Content Services

Abstract

OpenJDK is a Red Hat offering on the Red Hat Enterprise Linux platform. The Installing and using OpenJDK 8 guide provides an overview of this product and explains how to install the software and start using it.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. We are beginning with these four terms: master, slave, blacklist, and whitelist. Because of the enormity of this endeavor, these changes will be implemented gradually over several upcoming releases. For more details, see our CTO Chris Wright’s message.

Providing feedback on Red Hat documentation

We appreciate your feedback on our documentation. To provide feedback, you can highlight the text in a document and add comments.

This section explains how to submit feedback.

Prerequisites

  • You are logged in to the Red Hat Customer Portal.
  • In the Red Hat Customer Portal, view the document in Multi-page HTML format.

Procedure

To provide your feedback, perform the following steps:

  1. Click the Feedback button in the top-right corner of the document to see existing feedback.

    Note

    The feedback feature is enabled only in the Multi-page HTML format.

  2. Highlight the section of the document where you want to provide feedback.
  3. Click the Add Feedback pop-up that appears near the highlighted text.

    A text box appears in the feedback section on the right side of the page.

  4. Enter your feedback in the text box and click Submit.

    A documentation issue is created.

  5. To view the issue, click the issue tracker link in the feedback view.

Chapter 1. OpenJDK overview

OpenJDK (Open Java Development Kit) is a free and open source implementation of the Java Platform, Standard Edition (Java SE). The Red Hat build of OpenJDK is available in two versions, OpenJDK 8u and OpenJDK 11u.

Packages for the Red Hat build of OpenJDK are made available on Red Hat Enterprise Linux and Microsoft Windows and shipped as a JDK and JRE in the Red Hat Container Catalog.

Chapter 2. Installing OpenJDK 8 on Red Hat Enterprise Linux

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 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 OpenJDK on Red Hat Enterprise Linux:

2.1. Installing a JRE on RHEL using yum

You can install OpenJDK Java Runtime Environment (JRE) using the system package manager, yum.

Prequisites

  • Log in as a user with root privileges.

Procedure

  1. Run the yum command, specifying the package you want to install:

    $ sudo yum install java-1.8.0-openjdk

  2. Check that the installation works:

    $ 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)

2.2. Installing a JRE on RHEL using an archive

You can install OpenJDK Java Runtime Environment (JRE) using an archive. 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

  1. Download the latest version of the JRE archive for Linux.
  2. Extract the contents of the archive to a directory of your choice:

    $ mkdir ~/jres
    $ cd ~/jres
    $ tar -xf java-1.8.0-openjdk-1.8.0.242.b08-1.static.jre.openjdkportable.x86_64.tar.xz
  3. Create a generic path by using symbolic links to your JRE for easier upgrades:

    $ ln -s ~/jres/java-1.8.0-openjdk-1.8.0.242.b08-1.static.jre.openjdkportable.x86_64 ~/jres/java-8

  4. Configure the JAVA_HOME environment variable:

    $ export JAVA_HOME=~/jres/java-8
  5. Verify that JAVA_HOME environment variable is set correctly:

    $ printenv | grep JAVA_HOME
    JAVA_HOME=~/jres/java-8
    Note

    When installed using this method, OpenJDK will only be available for the current user.

  6. Add the bin directory of the generic JRE path to the PATH environment variable:

    $ export PATH="$JAVA_HOME/bin:$PATH"
  7. Verify that java -version works without supplying the full path:

    $ 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)
Note

You can ensure that JAVA_HOME environment variable persists for the current user by exporting the environment variable in ~/.bashrc.

2.3. Installing OpenJDK 8 on RHEL using yum

You can install OpenJDK using the system package manager, yum.

Prerequisites

  • Log in as a user with root privileges.

Procedure

  1. Run the yum command, specifying the package you want to install:

    $ sudo yum install java-1.8.0-openjdk-devel

  2. Check that the installation works:

    $ javac -version
    javac 1.8.0_242

2.4. Installing OpenJDK on RHEL using an archive

You can install OpenJDK using 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

  1. Download the latest version of the OpenJDK archive for Linux.
  2. Extract the contents of the archvie to a directory of your choice:

    $ mkdir ~/jdks
    $ cd ~/jdks
    $ tar -xf java-1.8.0-openjdk-1.8.0.242.b08-1.static.jdk.openjdkportable.x86_64.tar.xz
  3. Create a generic path by using symbolic links to your JRE for easier upgrades:

    $ ln -s ~/jdks/java-1.8.0-openjdk-1.8.0.242.b08-1.static.jdk.openjdkportable.x86_64 ~/jdks/java-8

  4. Configure the JAVA_HOME environment variable:

    $ export JAVA_HOME=~/jdks/java-8
  5. Verify that JAVA_HOME environment variable is set correctly:

    $ printenv | grep JAVA_HOME
    JAVA_HOME=~/jdks/java-8
    Note

    When installed using this method, OpenJDK will only be available for the current user.

  6. Add the bin directory of the generic OpenJDK path to the PATH environment variable:

    $ export PATH="$JAVA_HOME/bin:$PATH"
  7. Verify that javac -version works without supplying the full path:

    $ javac -version
    javac "1.8.0_242"
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 OpenJDK on RHEL using yum

You can install multiple versions of OpenJDK using the system package manager, yum.

Prerequisites

  • A Red Hat Subscription Manager (RHSM) account with an active subscription that provides access to a repository that provides the OpenJDK versions you want to install.
  • You must have root privileges on the system.

Procedure

  1. Run the following yum commands to install the package:

    For OpenJDK 8

    $ sudo yum install java-1.8.0-openjdk

    For OpenJDK 11

    $ sudo yum install java-11-openjdk

  2. After installing, check the available java versions:

    $ sudo yum list installed "java*"
    
    Installed Packages
    java-1.8.0-openjdk.x86_64          1:1.8.0.272.b10-3.el8_3         @rhel-8-for-x86_64-appstream-rpms
    java-11-openjdk.x86_64             1:11.0.9.11-2.el8_3              @rhel-8-for-x86_64-appstream-rpms
  3. Check the current java version:

    $ 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)

Additional resources

2.6. Installing multiple major versions of OpenJDK on RHEL using an archive

You can install multiple major versions of OpenJDK by using the same procedures found in Installing a JRE on RHEL using an archive or Installing OpenJDK on RHEL using an archive using multiple major versions.

Note

For instructions how to configure the default OpenJDK version for the system, see Selecting a system-wide archive java version.

2.7. Installing multiple minor versions of OpenJDK on RHEL using yum

You can install multiple minor versions of OpenJDK on RHEL. This is done by preventing the installed minor versions from being updated.

Procedure

  1. Add the installonlypkgs option in /etc/yum.conf to specify the OpenJDK packages that yum can install but not update.

    installonlypkgs=java-<version>--openjdk,java-<version>--openjdk-headless,java-<version>--openjdk-devel

    Updates will install new packages while leaving the old versions on the system:

    $ rpm -qa | grep java-1.8.0-openjdk
    java-1.8.0-openjdk-1.8.0.242.b08-0.el8_1.x86_64
    java-1.8.0-openjdk-headless-1.8.0.242.b08-0.el8_1.x86_64
  2. The different minor versions of OpenJDK can be found in the /usr/lib/jvm/<minor version> files.

    For example, the following shows part of /usr/lib/jvm/java-1.8.0-openjdk-1.8.0:

    $ /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el8_1.x86_64/bin/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)
    
    $ /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.172-7.b11.el7.x86_64/bin/java -version
    openjdk version "1.8.0_172"
    OpenJDK Runtime Environment (build 1.8.0_172-b11)
    OpenJDK 64-Bit Server VM (build 25.172-b11, mixed mode)

2.8. Installing multiple minor versions of OpenJDK on RHEL using an archive

Installing multiple minor versions is the same as Installing a JRE on RHEL using an archive or Installing OpenJDK on RHEL using an archive using multiple minor versions.

Note

For instructions how to choose a default minor version for the system, see Selecting a system-wide archive java version.

Chapter 3. Updating OpenJDK 8 on RHEL

3.1. Updating OpenJDK on RHEL using yum

The installed OpenJDK packages can be updated using the yum system package manager. This requires root privileges.

Prerequisite

  • You must have root privileges on the system.

Procedure

  1. Check the current OpenJDK version:

    $ sudo yum list installed "java*"

    A list of installed OpenJDK 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
  2. Update a specific package. For example:

    $ sudo yum update java-1.8.0-openjdk

  3. Verify that the update worked by checking the current OpenJDK versions:

    # 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)

3.2. Updating OpenJDK on RHEL using an archive

You can update OpenJDK using an archive. This is useful if the OpenJDK administrator does not have root privileges.

Prerequisites

  • Know the generic path pointing to your OpenJDK or JRE installation. For example, ~/jdks/java-8

Procedure

  1. Remove the existing symbolic link of the generic path to your OpenJDK or JRE.

    For example:

    $ unlink ~/jdks/java-8

  2. Install the latest version of the OpenJDK or JRE in your installation location.

Legal Notice

Copyright © 2021 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.