RHEL 向け OpenJDK 8 の設定

OpenJDK 8

ガイド

概要

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

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

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

Red Hat ドキュメントへのフィードバック (英語のみ)

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

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

前提条件

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

手順

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

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

    注記

    フィードバック機能は、Multi-page 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.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
  2. 特定の java コマンドに使用できる OpenJDK バージョンを表示し、使用するものを選択します。

    $ 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
    • 現在のシステム全体の OpenJDK バージョンにはアスタリスクが付いています。
    • 指定した java コマンドの現在の OpenJDK バージョンには、プラス記号が付いています。
  3. Enter を押して現在の選択を保持するか、選択する OpenJDK バージョンの Selection 番号を入力し、Enter キーを押します。

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

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

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

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

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

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

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

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

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

注記

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

前提条件

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

手順

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

    # PKG_NAME=java-1.8.0-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 "1.8.0_242"
    OpenJDK Runtime Environment (build 1.8.0_242-b08)
    OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
    注記

    javac についても同様のアプローチが可能です。

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

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

前提条件

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

手順

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

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

    注記

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

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

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

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

      $ JAVA_HOME=/usr/lib/jvm/java-8-openjdk mvn --version
      
      Apache Maven 3.5.4 (Red Hat 3.5.4-5)
      Maven home: /usr/share/maven
      Java version: 1.8.0_242, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-8-openjdk-1.8.0.242.b08-0.el8_1.x86_64
      Default locale: en_US, platform encoding: UTF-8
      OS name: "linux", version: "5.4.12-200.el8_1.x86_64", arch: "amd64", family: "unix"

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

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

前提条件

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

手順

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

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

    $ export JAVA_HOME=/opt/jdk/jdk-1.8.0

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

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

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

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

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

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

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

関連情報

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

一部のアプリケーションでは、OpenJDK のインストールを検出できるように JAVA_HOME 環境変数を設定する必要があります。

前提条件

  • システムのどこに OpenJDK をインストールしたかを理解している。たとえば、/opt/jdk/11 です。

手順

  1. JAVA_HOME の値を設定します。

    $ export JAVA_HOME=/opt/jdk/11
  2. JAVA_HOME が正しく設定されていることを確認します。

    $ printenv | grep JAVA_HOME
    JAVA_HOME=/opt/jdk/11
    注記

    単一ユーザーの場合は ~/.bashrc の環境変数、システム全体の設定の場合は /etc/bashrc の環境変数をエクスポートして JAVA_HOME の値を永続的にすることができます。永続的とは、端末を閉じたりコンピューターを再起動したりした場合に、JAVA_HOME 環境変数の値をリセットする必要がないことを意味します。

    次の例は、テキストエディターを使用して、シングルユーザーの ~/.bashrcJAVA_HOME をエクスポートするためのコマンドを入力する方法を示しています。

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

関連情報

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

カスタマイズされたヒープサイズを使用するように OpenJDK を設定できます。

手順

  • アプリケーションの実行時に java コマンドに最大ヒープサイズオプションを追加します。たとえば、最大ヒープサイズを 100 メガバイトに設定するには、-Xmx100m オプションを使用します。

    $ java -Xmx100m <your_application_name>

関連情報