RHEL での Red Hat build of OpenJDK 21 のインストールと使用
概要
Red Hat build of OpenJDK ドキュメントへのフィードバック
エラーを報告したり、ドキュメントの改善を提案したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- 次のリンクをクリックして チケットを作成します。
- Summary に課題の簡単な説明を入力します。
- Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL も記載してください。
- Create をクリックすると、課題が作成され、適切なドキュメントチームに転送されます。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 Red Hat build of OpenJDK 21 の概要
OpenJDK (Open Java Development Kit) は、Java Platform Standard Edition (Java SE) のオープンソース実装です。Red Hat build of OpenJDK は、8u、11u、17u、21u の 4 つのバージョンで利用できます。
Red Hat build of OpenJDK 向けパッケージは、Red Hat Enterprise Linux および Microsoft Windows で利用でき、Red Hat Ecosystem Catalog の JDK および JRE として同梱されています。
第2章 Red Hat Enterprise Linux での Red Hat build of OpenJDK 21 のインストール
Red Hat build of OpenJDK は、モバイルアプリケーションからデスクトップアプリケーション、Web アプリケーション、エンタープライズシステムまで、プラットフォームに依存しない幅広いアプリケーションを開発および実行するための環境です。Red Hat は、Red Hat build of OpenJDK と呼ばれる Java Platform SE (Standard Edition) のオープンソース実装を提供します。
アプリケーションは、JDK (Java Development Kit) を使用して開発されます。アプリケーションは、JRE (Java ランタイム環境) および JDK に含まれる JVM (Java 仮想マシン) で実行されます。フットプリントが最小で、ユーザーインターフェイスに必要なライブラリーが含まれていないヘッドレスバージョンの Java もあります。ヘッドレスバージョンは、ヘッドレスサブパッケージにパッケージ化されています。
JRE と JDK のどちらが必要かわからない場合は、JDK をインストールすることが推奨されます。
以下のセクションでは、Red Hat Enterprise Linux に Red Hat build of OpenJDK をインストールする手順を説明します。
Red Hat build of OpenJDK の複数のメジャーバージョンをローカルシステムにインストールできます。あるメジャーバージョンから別のメジャーバージョンに切り替える必要がある場合は、コマンドラインインターフェイス (CLI) で以下のコマンドを実行し、画面のプロンプトに従います。
sudo update-alternatives --config 'java'
$ sudo update-alternatives --config 'java'
2.1. yum
を使用した RHEL への JRE のインストール
yum
システムパッケージマネージャーを使用して、Red Hat build of OpenJDK Java Runtime Environment (JRE) をインストールできます。
前提条件
- root 権限があるユーザーとしてシステムにログインしている。
- ローカルシステムを Red Hat Subscription Manager アカウントに登録している。RHEL システム登録のスタートガイド の Red Hat Subscription Manager の使用 を参照してください。
手順
インストールするパッケージを指定して、
yum
コマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo yum install java-21-openjdk
$ sudo yum install java-21-openjdk
インストールが機能することを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow java -version
$ java -version
注記前のコマンドの出力で、システムで Red Hat build of OpenJDK の別のメジャーバージョンがチェックアウトされていることが分かった場合は、CLI で以下のコマンドを入力して、システムを Red Hat build of OpenJDK 21 を使用するように切り替えることができます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo update-alternatives --config 'java'
$ sudo update-alternatives --config 'java'
2.2. アーカイブを使用した RHEL への JRE のインストール
アーカイブファイルを使用して Red Hat build of OpenJDK Java Runtime Environment (JRE) をインストールできます。これは、Java 管理者が root 権限を持っていない場合に役立ちます。
後続バージョンのアップグレードを容易にするために、JRE を含む親ディレクトリーを作成し、汎用パスを使用して最新の JRE へのシンボリックリンクを作成します。
手順
アーカイブファイルをダウンロードするディレクトリーを作成し、コマンドラインインターフェイス (CLI) でそのディレクトリーに移動します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir ~/jres cd ~/jres
$ mkdir ~/jres $ cd ~/jres
- Red Hat カスタマーポータルの Software Downloads ページに移動します。
- Version ドロップダウンリストから Red Hat build of OpenJDK 21 の最新バージョンを選択し、Linux 用の JRE アーカイブをローカルシステムにダウンロードします。
アーカイブのコンテンツを任意のディレクトリーにデプロイメントします。
以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow tar -xf archive_file_name.tar.gz -C ~/jres
$ tar -xf archive_file_name.tar.gz -C ~/jres
アップグレードを容易にするために、JRE へのシンボリックリンクを使用して汎用パスを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ln -s ~/jres/archive_file_name ~/jres/java-21
$ ln -s ~/jres/archive_file_name ~/jres/java-21
JAVA_HOME
環境変数を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow export JAVA_HOME=~/jres/java-21
$ export JAVA_HOME=~/jres/java-21
JAVA_HOME
環境変数が正しく設定されていることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow printenv | grep JAVA_HOME
$ printenv | grep JAVA_HOME JAVA_HOME=~/jres/java-21
注記この方法でインストールした場合、Java は現在のユーザーのみが使用できます。
一般的な JRE パスの
bin
ディレクトリーをPATH
環境変数に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow export PATH="$JAVA_HOME/bin:$PATH"
$ export PATH="$JAVA_HOME/bin:$PATH"
完全パスを指定せずに
java -version
が機能することを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow java -version
$ java -version
注記~/.bashrc
に環境変数をエクスポートすることで、JAVA_HOME
環境変数が現在のユーザーに対して持続することを確認できます。
2.3. yum
を使用した RHEL での Red Hat build of OpenJDK のインストールおよび使用
yum
システムパッケージマネージャーを使用して、Red Hat build of OpenJDK をインストールできます。
前提条件
- ルート権限を持つユーザーとしてログインしている。
- ローカルシステムを Red Hat Subscription Manager アカウントに登録している。RHEL システム登録のスタートガイド の Red Hat Subscription Manager の使用 を参照してください。
手順
インストールするパッケージを指定して、
yum
コマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo yum install java-21-openjdk-devel
$ sudo yum install java-21-openjdk-devel
インストールが機能することを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow javac -version
$ javac -version javac 21.0.1
2.4. アーカイブを使用した RHEL での Red Hat build of OpenJDK のインストールおよび使用
Red Hat build of OpenJDK は、アーカイブでインストールできます。これは、Java 管理者が root 権限を持っていない場合に役立ちます。
アップグレードを容易にするために、JRE を含む親ディレクトリーを作成し、汎用パスを使用して最新の JRE へのシンボリックリンクを作成します。
手順
アーカイブファイルをダウンロードするディレクトリーを作成し、コマンドラインインターフェイス (CLI) でそのディレクトリーに移動します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir ~/jdks cd ~/jdks
$ mkdir ~/jdks $ cd ~/jdks
- Red Hat カスタマーポータルの Software Downloads ページに移動します。
- Version ドロップダウンリストから Red Hat build of OpenJDK 21 の最新バージョンを選択し、Linux 用の JDK アーカイブをローカルシステムにダウンロードします。
アーカイブのコンテンツを任意のディレクトリーにデプロイメントします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow tar -xf archive_file_name.tar.xz -C ~/jdks
$ tar -xf archive_file_name.tar.xz -C ~/jdks
アップグレードを容易にするために、JDK へのシンボリックリンクを使用して汎用パスを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ln -s ~/jdks/archive_file_name ~/jdks/java-21
$ ln -s ~/jdks/archive_file_name ~/jdks/java-21
JAVA_HOME
環境変数を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow export JAVA_HOME=~/jdks/java-21
$ export JAVA_HOME=~/jdks/java-21
JAVA_HOME
環境変数が正しく設定されていることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow printenv | grep JAVA_HOME
$ printenv | grep JAVA_HOME JAVA_HOME=~/jdks/java-21
注記この方法でインストールした場合、Java は現在のユーザーのみが使用できます。
一般的な JRE パスの
bin
ディレクトリーをPATH
環境変数に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow export PATH="$JAVA_HOME/bin:$PATH"
$ export PATH="$JAVA_HOME/bin:$PATH"
完全パスを指定せずに
java -version
が機能することを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow java -version
$ java -version
~/.bashrc
に環境変数をエクスポートすることで、JAVA_HOME
環境変数が現在のユーザーに対して持続することを確認できます。
2.5. yum
を使用した RHEL への Red Hat build of OpenJDK のメジャーバージョンの複数インストール
yum
システムパッケージマネージャーを使用して、Red Hat build of OpenJDK の複数バージョンをインストールできます。
前提条件
- インストールする Red Hat build of OpenJDK を提供するリポジトリーへのアクセスを提供するアクティブなサブスクリプションを持つ Red Hat Subscription Manager (RHSM) アカウント。
- システムに対する root 権限がある。
手順
以下の
yum
コマンドを実行してパッケージをインストールします。Red Hat build of OpenJDK 21
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo yum install java-21-openjdk
$ sudo yum install java-21-openjdk
Red Hat build of OpenJDK 17
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo yum install java-17-openjdk
$ sudo yum install java-17-openjdk
Red Hat build of OpenJDK 11
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo yum install java-11-openjdk
$ sudo yum install java-11-openjdk
Red Hat build of OpenJDK 8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo yum install java-1.8.0-openjdk
$ sudo yum install java-1.8.0-openjdk
インストール後に、利用可能な Java バージョンを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo yum list installed "java*"
$ sudo yum list installed "java*"
現在の Java バージョンを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow java -version
$ java -version
注記Red Hat build of OpenJDK の複数のメジャーバージョンをローカルシステムにインストールできます。あるメジャーバージョンから別のメジャーバージョンに切り替える必要がある場合は、コマンドラインインターフェイス (CLI) で以下のコマンドを実行し、画面のプロンプトに従います。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo update-alternatives --config 'java'
$ sudo update-alternatives --config 'java'
関連情報
-
java --alternatives
を使用して、使用するデフォルトの Java バージョンを設定できます。詳細は、RHEL でシステム全体の Red Hat build of OpenJDK バージョンを非対話的に選択 を参照してください。
2.6. アーカイブを使用した RHEL への Red Hat build of OpenJDK のメジャーバージョンの複数インストール
Red Hat build of OpenJDK の複数のメジャーバージョンをインストールするには、アーカイブを使用した RHEL への JRE のインストール と同じ手順を使用するか、複数のメジャーバージョンを使用して アーカイブを使用して RHEL に Red Hat build of OpenJDK をインストール できます。
システムのデフォルトの Red Hat build of OpenJDK バージョンを設定する方法は、RHEL でシステム全体の Red Hat build of OpenJDK バージョンを非対話的に選択する を参照してください。
関連情報
- JRE のインストール方法は、アーカイブを使用した RHEL への JRE のインストール を参照してください。
- JDK のインストール方法は、アーカイブを使用した RHEL への Red Hat build of OpenJDK のインストール を参照してください。
2.7. yum
を使用した RHEL への Red Hat build of OpenJDK のマイナーバージョンの複数インストール
RHEL には、Red Hat build of OpenJDK の複数のマイナーバージョンをインストールできます。これは、インストールされているマイナーバージョンが更新されないようにすることで行われます。
前提条件
- RHEL でシステム全体の Red Hat build of OpenJDK バージョンを非対話的に選択 から、システム全体の Red Hat build of OpenJDK バージョンを選択している。
手順
/etc/yum.conf
ディレクトリーにinstallonlypkgs
オプションを追加して、yum
がインストール可能でも更新できない Red Hat build of OpenJDK パッケージを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow installonlypkgs=java-<version>--openjdk,java-<version>--openjdk-headless,java-<version>--openjdk-devel
installonlypkgs=java-<version>--openjdk,java-<version>--openjdk-headless,java-<version>--openjdk-devel
更新は、システムに古いバージョンを残したまま、新しいパッケージをインストールします。
Red Hat build of OpenJDK のさまざまなマイナーバージョンは、/usr/lib/jvm/<minor version>
ファイルにあります。
2.8. アーカイブを使用して RHEL に Red Hat build of OpenJDK の複数のマイナーバージョンをインストールする
複数のマイナーバージョンのインストールは、複数のマイナーバージョンを使用したアーカイブを使用した RHEL への JRE のインストールまたはアーカイブを使用した RHEL 8 への Red Hat build of OpenJDK のインストールと同じです。
システムのデフォルトのマイナーバージョンを選択する方法は、RHEL でシステム全体の Red Hat build of OpenJDK バージョンを非対話的に選択 を参照してください。
関連情報
- JRE のインストール方法は、アーカイブを使用した RHEL への JRE のインストール を参照してください。
- JDK のインストール方法は、アーカイブを使用した RHEL への Red Hat build of OpenJDK のインストール を参照してください。
第3章 Red Hat build of OpenJDK 21 のデバッグシンボル
Red Hat build of OpenJDK アプリケーションでクラッシュの調査に役立つシンボルのデバッグに役立ちます。
3.1. デバッグシンボルのインストール
この手順では、Red Hat build of OpenJDK のデバッグシンボルをインストールする方法を説明します。
前提条件
ローカルの sytem に
gdb
パッケージをインストールしている。-
CLI で
sudo yum install gdb
コマンドを実行して、ローカルシステムにこのパッケージをインストールできます。
-
CLI で
手順
デバッグシンボルをインストールするには、以下のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo debuginfo-install java-21-openjdk sudo debuginfo-install java-21-openjdk-headless
$ sudo debuginfo-install java-21-openjdk $ sudo debuginfo-install java-21-openjdk-headless
これらのコマンドは、
java-21-openjdk-debuginfo
、java-21-openjdk-headless-debuginfo
、および Red Hat build of OpenJDK 21 バイナリーのデバッグシンボルを提供する追加パッケージをインストールします。これらのパッケージは自己完全ではなく、実行可能なバイナリーは 含まれません。注記debuginfo-install
は、yum-utils
パッケージで提供されます。デバッグシンボルがインストールされていることを確認するには、以下のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow gdb which java
$ gdb which java Reading symbols from /usr/bin/java...Reading symbols from /usr/lib/debug/usr/lib/jvm/java-21-version/bin/java-21-version.x86_64.debug...done. (gdb)
3.2. デバッグシンボルのインストール場所の確認
この手順では、デバッグシンボルの場所を見つける方法を説明します。
debuginfo
パッケージがインストールされていても、パッケージのインストール場所を取得できない場合は、正しいパッケージと java バージョンがインストールされているかどうかを確認します。バージョンを確認した後、再度デバッグシンボルの場所を確認してください。
前提条件
ローカルの sytem に
gdb
パッケージをインストールしている。-
CLI で
sudo yum install gdb
コマンドを実行して、ローカルシステムにこのパッケージをインストールできます。 - デバッグシンボルパッケージをインストールしている。デバッグシンボルのインストール を参照してください。
-
CLI で
手順
デバッグシンボルの場所を見つけるには、
which java
コマンドでgdb
を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow gdb which java
$ gdb which java Reading symbols from /usr/bin/java...Reading symbols from /usr/lib/debug/usr/lib/jvm/java-21-openjdk-version/bin/java-version.x86_64.debug...done. (gdb)
以下のコマンドを使用して
*-debug
ディレクトリーを調べて、java
、javac
、およびjavah
を含むライブラリーのデバッグバージョンをすべて表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd /usr/lib/debug/lib/jvm/java-21-openjdk-version
$ cd /usr/lib/debug/lib/jvm/java-21-openjdk-version
Copy to Clipboard Copied! Toggle word wrap Toggle overflow tree
$ tree OJDK 21 version: └── java-21-openjdk-version ├── bin │ ... │ │── java-java-version.x86_64.debug │ ├── javac-java-version.x86_64.debug │ ├── javadoc-java-version.x86_64.debug │ ... └── lib ├── jexec-java-version.x86_64.debug ├── jli │ └── libjli.so-java-version.x86_64.debug ├── jspawnhelper-java-version.x86_64.debug │ ...
javac
および javah
ツールは、java-21-openjdk-devel
パッケージで提供されます。$ sudo debuginfo-install java-21-openjdk-devel
コマンドを使用してパッケージをインストールできます。
3.3. デバッグシンボルの設定の確認
デバッグシンボルの設定を確認および設定できます。
以下のコマンドを入力して、インストールされているパッケージのリストを取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo yum list installed | grep 'java-21-openjdk-debuginfo'
$ sudo yum list installed | grep 'java-21-openjdk-debuginfo'
デバッグ情報パッケージがインストールされていない場合は、以下のコマンドを実行して、足りないパッケージをインストールします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo yum debuginfo-install glibc-2.28-151.el8.x86_64 libgcc-8.4.1-1.el8.x86_64 libstdc++-8.4.1-1.el8.x86_64 sssd-client-2.4.0-9.el8.x86_64 zlib-1.2.11-17.el8.x86_64
$ sudo yum debuginfo-install glibc-2.28-151.el8.x86_64 libgcc-8.4.1-1.el8.x86_64 libstdc++-8.4.1-1.el8.x86_64 sssd-client-2.4.0-9.el8.x86_64 zlib-1.2.11-17.el8.x86_64
特定のブレークポイントに到達する場合は、以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow gdb -ex 'handle SIGSEGV noprint nostop pass' -ex 'set breakpoint pending on' -ex 'break JavaCalls::call' -ex 'run' --args java ./HelloWorld
$ gdb -ex 'handle SIGSEGV noprint nostop pass' -ex 'set breakpoint pending on' -ex 'break JavaCalls::call' -ex 'run' --args java ./HelloWorld
上記のコマンドは、以下のタスクを完了します。
- JVM はスタックオーバーフローチェックに SEGV を使用するため、SIGSEGV エラーを処理します。
-
保留中のブレークポイントを
yes
に設定します。 -
JavaCalls::call
関数で break ステートメントを呼び出します。HotSpot(libjvm.so) でアプリケーションを起動する関数。
3.4. 致命的なエラーログファイルでのデバッグシンボルの設定
JVM クラッシュが原因で Java アプリケーションがダウンすると、致命的なエラーのログファイルが生成されます (例: hs_error
、java_error
)。これらのエラーログファイルは、アプリケーションの現在の作業ディレクトリーに生成されます。クラッシュファイルには、スタックに関する情報が含まれます。
手順
strip -g
コマンドを使用すると、デバッグシンボルをすべて削除できます。以下のコードは、デプロイメントされていない
hs_error
ファイルの例を示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0xb83d2a] Unsafe_SetLong+0xda j sun.misc.Unsafe.putLong(Ljava/lang/Object;JJ)V+0 j Crash.main([Ljava/lang/String;)V+8 v ~StubRoutines::call_stub V [libjvm.so+0x6c0e65] JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0xc85 V [libjvm.so+0x73cc0d] jni_invoke_static(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, Thread*) [clone .constprop.1]+0x31d V [libjvm.so+0x73fd16] jni_CallStaticVoidMethod+0x186 C [libjli.so+0x48a2] JavaMain+0x472 C [libpthread.so.0+0x9432] start_thread+0xe2
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0xb83d2a] Unsafe_SetLong+0xda j sun.misc.Unsafe.putLong(Ljava/lang/Object;JJ)V+0 j Crash.main([Ljava/lang/String;)V+8 v ~StubRoutines::call_stub V [libjvm.so+0x6c0e65] JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0xc85 V [libjvm.so+0x73cc0d] jni_invoke_static(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, Thread*) [clone .constprop.1]+0x31d V [libjvm.so+0x73fd16] jni_CallStaticVoidMethod+0x186 C [libjli.so+0x48a2] JavaMain+0x472 C [libpthread.so.0+0x9432] start_thread+0xe2
以下のコードは、ストライピング
hs_error
ファイルの例を示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Stack: [0x00007ff7e1a44000,0x00007ff7e1b44000], sp=0x00007ff7e1b42850, free space=1018k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0xa7ecab] j sun.misc.Unsafe.putAddress(JJ)V+0 j Crash.crash()V+5 j Crash.main([Ljava/lang/String;)V+0 v ~StubRoutines::call_stub V [libjvm.so+0x67133a] V [libjvm.so+0x682bca] V [libjvm.so+0x6968b6] C [libjli.so+0x3989] C [libpthread.so.0+0x7dd5] start_thread+0xc5
Stack: [0x00007ff7e1a44000,0x00007ff7e1b44000], sp=0x00007ff7e1b42850, free space=1018k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0xa7ecab] j sun.misc.Unsafe.putAddress(JJ)V+0 j Crash.crash()V+5 j Crash.main([Ljava/lang/String;)V+0 v ~StubRoutines::call_stub V [libjvm.so+0x67133a] V [libjvm.so+0x682bca] V [libjvm.so+0x6968b6] C [libjli.so+0x3989] C [libpthread.so.0+0x7dd5] start_thread+0xc5
以下のコマンドを入力して、同じバージョンのデバッグシンボルと致命的なエラーログファイルがあることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow java -version
$ java -version
注記このチェックを完了するには、
sudo update-alternatives --config 'java'
を使用することもできます。nm
コマンドを使用して、libjvm.so
に ELF データおよびテキストシンボルがあることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow nm /usr/lib/debug/usr/lib/jvm/java-21-openjdk-version/lib/server/libjvm.so-version.x86_64.debug
$ nm /usr/lib/debug/usr/lib/jvm/java-21-openjdk-version/lib/server/libjvm.so-version.x86_64.debug
関連情報
-
クラッシュファイル
hs_error
は、デバッグシンボルがインストールされない状態で不完全です。詳細は、Java application down due to JVM crash を参照してください。
第4章 Red Hat Enterprise Linux での Red Hat build of OpenJDK 21 の更新
以下のセクションでは、Red Hat Enterprise Linux で Red Hat build of OpenJDK 21 を更新する手順を説明します。
4.1. yum
を使用した RHEL での Red Hat build of OpenJDK 21 の更新
yum
システムパッケージマネージャーを使用して、インストールされている Red Hat build of OpenJDK パッケージを更新できます。
前提条件
- システムに対する root 権限がある。
手順
現在の Red Hat build of OpenJDK バージョンを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo yum list installed "java*"
$ sudo yum list installed "java*"
インストールされている Red Hat build of OpenJDK パッケージのリストが表示されます。
特定のパッケージを更新します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo yum update java-21-openjdk
$ sudo yum update java-21-openjdk
現在の Red Hat build of OpenJDK バージョンをチェックして、更新が機能していることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow java -version
$ java -version
注記Red Hat build of OpenJDK の複数のメジャーバージョンをローカルシステムにインストールできます。あるメジャーバージョンから別のメジャーバージョンに切り替える必要がある場合は、コマンドラインインターフェイス (CLI) で以下のコマンドを実行し、画面のプロンプトに従います。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo update-alternatives --config 'java'
$ sudo update-alternatives --config 'java'
4.2. アーカイブを使用した RHEL での Red Hat build of OpenJDK 21 の更新
アーカイブファイルを使用して、Red Hat build of OpenJDK を更新できます。これは、Red Hat build of OpenJDK 管理者が root 権限を持たない場合に便利です。
前提条件
-
JDK または JRE のインストールを指定する一般的なパスを把握している。たとえば、
~/jdks/java-21
など。
手順
JDK または JRE への汎用パスの既存のシンボリックリンクを削除します。
以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow unlink ~/jdks/java-21
$ unlink ~/jdks/java-21
- インストール場所に最新バージョンの JDK または JRE をインストールします。
関連情報
- JRE のインストール方法は、アーカイブを使用した RHEL への JRE のインストール を参照してください。
- JDK のインストール方法は、アーカイブを使用した RHEL への Red Hat build of OpenJDK のインストール を参照してください。
改訂日時: 2025-02-01