RHEL での OpenJDK 17 の設定

OpenJDK 17

ガイド

概要

OpenJDK は、Red Hat Enterprise Linux プラットフォーム上の Red Hat 製品です。『Configuring OpenJDK 17 on RHEL』では、この製品の概要と、ソフトウェアの設定方法を説明します。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、弊社 の CTO、Chris Wright のメッセージ を参照してください。

Red Hat ドキュメントへのフィードバック

弊社のドキュメントに関するご意見やご感想をお寄せください。フィードバックをお寄せいただくには、ドキュメントのテキストを強調表示し、コメントを追加できます。

本セクションでは、フィードバックの送信方法を説明します。

前提条件

  • Red Hat カスタマーポータルにログインしている。
  • Red Hat カスタマーポータルで、マルチページ HTML 形式でドキュメントを表示します。

手順

フィードバックを提供するには、以下の手順を実施します。

  1. ドキュメントの右上隅にある フィードバック ボタンをクリックして、既存のフィードバックを確認します。

    注記

    フィードバック機能は、マルチページ HTML 形式でのみ有効です。

  2. フィードバックを提供するドキュメントのセクションを強調表示します。
  3. ハイライトされたテキスト近くに表示される Add Feedback ポップアップをクリックします。

    ページの右側のフィードバックセクションにテキストボックスが表示されます。

  4. テキストボックスにフィードバックを入力し、Submit をクリックします。

    ドキュメントに関する問題が作成されます。

  5. 問題を表示するには、フィードバックビューで問題トラッカーリンクをクリックします。

第1章 RHEL でシステム全体の OpenJDK バージョンを対話的に選択

RHEL に OpenJDK が複数インストールされている場合は、システム全体で使用するデフォルトの OpenJDK バージョンを対話形式で選択できます。

注記

root 権限がない場合は、JAVA_HOME 環境変数を設定 して OpenJDK バージョンを選択できます。

前提条件

  • システムに対する root 権限がある。
  • yum パッケージマネージャーを使用して、複数のバージョンの OpenJDK がインストールされている。

手順

  1. システムにインストールされている OpenJDK のバージョンを表示します。

    $ yum list installed "java*"

    インストールされている Java パッケージの一覧が表示されます。

    Installed Packages
    java-1.8.0-openjdk.x86_64                       1:1.8.0.302.b08-0.el8_4               @rhel-8-appstream-rpms
    java-11-openjdk.x86_64                          1:11.0.12.0.7-0.el8_4                 @rhel-8-appstream-rpms
    java-11-openjdk-headless.x86_64                 1:11.0.12.0.7-0.el8_4                 @rhel-8-appstream-rpms
    java-17-openjdk.x86_64                          1:17.0.0.0.35-4.el8                   @rhel-8-appstream-rpms
    java-17-openjdk-headless.x86_64                 1:17.0.0.0.35-4.el8                   @rhel-8-appstream-rpms
  2. 特定の java コマンドに使用できる OpenJDK バージョンを表示し、使用するものを選択します。

    $ sudo alternatives --config java
    There are 3 programs which provide 'java'.
    
      Selection    Command
    -----------------------------------------------
       1           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el8_4.x86_64/bin/java)
    *  2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64/jre/bin/java)
     + 3           java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.0.0.35-4.el8.x86_64/bin/java)
    
    
    
    Enter to keep the current selection[+], or type selection number: 1
    • 現在のシステム全体の OpenJDK バージョンにはアスタリスクが付いています。
    • 指定した java コマンドの現在の OpenJDK バージョンには、プラス記号が付いています。
  3. Enter を押して現在の選択を保持するか、選択する OpenJDK バージョンの Selection 番号を入力し、Enter キーを押します。

    システムのデフォルトの OpenJDK バージョンは、選択したバージョンです。

  4. 選択したバイナリーが選択されていることを確認します。

    $ java -version
    openjdk version "17" 2021-09-14
    OpenJDK Runtime Environment 21.9 (build 17+35)
    OpenJDK 64-Bit Server VM 21.9 (build 17+35, mixed mode, sharing)
    注記

    この手順では、java コマンドを設定します。次に、javac コマンドは同様の方法で設定できますが、独立して動作します。

    OpenJDK をインストールしている場合、alternatives はより多くの選択肢を提供します。特に、javac マスターの代替は、-devel サブパッケージが提供する多くのバイナリーを切り替えます。

    OpenJDK がインストールされていても java (およびその他の JRE マスター) や javac (およびその他の OpenJDK マスター) は別々に動作するため、JRE と JDK で異なる選択を行うことができます。alternatives --config java コマンドは、jre とその関連するスレーブに影響します。

    OpenJDK を変更する場合は、javac alternatives コマンドを使用します。--config javac ユーティリティーは SDK および関連するスレーブを設定します。可能なすべてのマスターを表示するには、alternatives --list を使用して、java,javacjresdk マスターのすべてを確認します。

第2章 RHEL でシステム全体の OpenJDK バージョンを非対話的に選択

RHEL に OpenJDK の複数のバージョンがインストールされている場合は、デフォルトの OpenJDK バージョンを選択して、非対話式の方法でシステム全体を使用できます。これは、Red Hat Enterprise Linux システムで root 権限を持ち、多くのシステムのデフォルト OpenJDK を自動的に切り替える必要がある管理者に役立ちます。

注記

root 権限がない場合は、JAVA_HOME 環境変数を設定 して OpenJDK バージョンを選択できます。

前提条件

  • システムに対する root 権限がある。
  • yum パッケージマネージャーを使用して、複数のバージョンの OpenJDK がインストールされている。

手順

  1. 切り替える OpenJDK のメジャーバージョンを選択します。たとえば、OpenJDK 17 の場合は java-17-openjdk を使用します。

    # PKG_NAME=java-17-openjdk
    # JAVA_TO_SELECT=$(alternatives --display java | grep "family $PKG_NAME" | cut -d' ' -f1)
    # alternatives --set java $JAVA_TO_SELECT
  2. アクティブな OpenJDK バージョンが指定したバージョンであることを確認します。

    $ java -version
    openjdk version "17" 2021-09-14
    OpenJDK Runtime Environment 21.9 (build 17+35)
    OpenJDK 64-Bit Server VM 21.9 (build 17+35, mixed mode, sharing)

第3章 特定のアプリケーション用にインストールされた OpenJDK バージョンの選択

アプリケーションによっては、実行に特定の OpenJDK バージョンを必要とするものもあります。yum パッケージマネージャーまたはポータブルバンドルを使用して、複数のバージョンの OpenJDK がシステムにインストールされている場合は、JAVA_HOME 環境変数の値を設定するか、ラッパースクリプトを使用して、必要に応じて各アプリケーションの OpenJDK バージョンを選択できます。

前提条件

  • OpenJDK の複数のバージョンがマシンにインストールされている。
  • 実行するアプリケーションがインストールされていることを確認します。

手順

  1. JAVA_HOME 環境変数を設定します。たとえば、yum を使用して OpenJDK 17 がインストールされた場合は以下を使用します。

    $ JAVA_HOME=/usr/lib/jvm/java-17-openjdk

    注記

    シンボリックリンク java-17-openjdk は、alternatives コマンドにより制御されます。

  2. 次のいずれかを行います。

    • システム全体のデフォルト設定を使用してアプリケーションを起動します。

      $ mvn --version
      Apache Maven 3.5.4 (Red Hat 3.5.4-5)
      Maven home: /usr/share/maven
      Java version: 11.0.9, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-11-openjdk-11.0.9.10-0.el8_0.x86_644/jre
      Default locale: en_US, platform encoding: UTF-8
      OS name: "linux", version: "4.18.0-144.el8.x86_64", arch: "amd64", family: "unix"
    • JAVA_HOME 変数を指定してアプリケーションを起動します。

      $ JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.0.0.35-4.el8.x86_64/ mvn --version
      
      Apache Maven 3.5.4 (Red Hat 3.5.4-5)
      Maven home: /usr/share/maven
      Java version: 17, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-17-openjdk-17.0.0.0.35-4.el8.x86_64
      Default locale: en_US, platform encoding: UTF-8
      OS name: "linux", version: "4.18.0-305.19.1.el8_4.x86_64", arch: "amd64", family: "unix"

第4章 システム全体のアーカイブ OpenJDK バージョンの選択

RHEL にアーカイブを使用して複数のバージョンの OpenJDK がインストールされている場合は、システム全体で使用する特定の OpenJDK バージョンを選択できます。

前提条件

  • アーカイブを使用してインストールされた OpenJDK のバージョンの場所を把握している。

手順

1 つのセッションに使用する OpenJDK バージョンを指定するには、以下のコマンドを実行します。

  1. システム全体で使用する OpenJDK バージョンへのパスで JAVA_HOME を設定します。

    $ export JAVA_HOME=/opt/jdk/openjdk-17.0.0.0.35

  2. $JAVA_HOME/binPATH 環境変数に追加します。

    $ export PATH="$JAVA_HOME/bin:$PATH"

1 人のユーザーに永続的に使用する OpenJDK バージョンを指定するには、以下のコマンドを ~/.bashrc に追加します。

export JAVA_HOME=/opt/jdk/openjdk-17.0.0.0.35
export PATH="$JAVA_HOME/bin:$PATH"

すべてのユーザーに永続的に使用する OpenJDK バージョンを指定するには、以下のコマンドを /etc/bashrc に追加します。

export JAVA_HOME=/opt/jdk/openjdk-17.0.0.0.35
export PATH="$JAVA_HOME/bin:$PATH"
注記

JAVA_HOME を再定義しない場合は、Java バイナリーへのパスを指定して、PATH コマンドのみを bashrc に追加します。たとえば、export PATH="/opt/jdk/openjdk-17.0.0.0.35/bin:$PATH" になります。

関連情報

第5章 RHEL での JAVA_HOME 環境変数の設定

前提条件

手順

  1. $ export JAVA_HOME=/opt/jdk/11
  2. $ printenv | grep JAVA_HOME
    JAVA_HOME=/opt/jdk/11
    注記

    > vi ~/.bash_profile
    
    export JAVA_HOME=/opt/jdk/11
    export PATH="$JAVA_HOME/bin:$PATH"

関連情報

第6章 RHEL での OpenJDK アプリケーションのヒープサイズの設定

手順

  • $ java -Xmx100m <your_application_name>

関連情報