CentOS 8 で Java (OpenJDK / Oracle Java) をインストールする方法

重要なポイント: Java には商用機能を追加した Oracle Java と、オープンソース実装の OpenJDK の主に2種類があります。OpenJDK は無料でコミュニティにより提供され、Oracle Java は追加ライセンスやサポートが必要な場合があります。
目的と対象読者
- 目的: CentOS 8 上で OpenJDK 11、OpenJDK 8、または Oracle Java 8 をインストールし、必要に応じてバージョンを切り替える
- 対象: システム管理者、サーバーエンジニア、アプリ開発者
要件
- CentOS 8 を実行するサーバー
- root 権限または sudo が使えるユーザー
- Oracle Java を使う場合は Oracle のアカウントとダウンロード権限
用語(1行定義)
- OpenJDK: オープンソースの Java 実装。
- Oracle Java: Oracle が配布する商用/非商用版の Java 実装。
- alternatives: Linux の複数コマンド候補を切り替えるシステムユーティリティ。
OpenJDK 11 をインストールする
まず、CentOS 8 のリポジトリで利用可能な JDK を検索します:
dnf search jdk
検索結果の例(出力を丸ごと確認して、目的のパッケージ名を特定してください):
Last metadata expiration check: 1:23:41 ago on Wednesday 18 December 2019 02:23:23 AM EST.
========================================================= Summary & Name Matched: jdk =========================================================
java-11-openjdk-demo.x86_64 : OpenJDK Demos 11
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos 8
java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11
java-11-openjdk-src.x86_64 : OpenJDK Source Bundle 11
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle 8
java-11-openjdk.x86_64 : OpenJDK Runtime Environment 11
copy-jdk-configs.noarch : JDKs configuration files copier
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment 8
java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation
java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
java-11-openjdk-devel.x86_64 : OpenJDK Development Environment 11
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment 8
java-11-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 11
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK 8 accessibility connector
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 8
java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in a single archive
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed in a single archive
============================================================ Summary Matched: jdk =============================================================
icedtea-web.noarch : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation
OpenJDK 11 (開発環境含む) をインストールするには:
dnf install java-11-openjdk-devel.x86_64
インストール後、Java のバージョンを確認します:
java -version
期待される出力例:
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
メモ: 実際のバージョン番号はリポジトリやアップデートにより変わります。
OpenJDK 8 をインストールする
一部の古いアプリケーションは OpenJDK 8 のみをサポートします。その場合は次のコマンドでインストールします:
dnf install java-1.8.0-openjdk-devel
インストール後の確認:
java -version
期待される出力例:
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
複数バージョンの Java を切り替える
同一システムに複数の Java をインストールして、用途に応じて切り替えることができます。alternatives コマンドを使います:
alternatives --config java
コマンドを実行すると、システムに登録された “java” の提供プログラム一覧が表示され、選択番号を指定できます。例:
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.5.10-0.el8_0.x86_64/bin/java)
*+ 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el8_0.x86_64/jre/bin/java)
Enter to keep the current selection[+], or type selection number: 1
番号を入力して Enter を押すと、アクティブな java が切り替わります。切り替え後は必ず java -version
で確認してください。
Oracle Java 8 をインストールする
Oracle Java は商用ライセンスやダウンロードの手順が Oracle 側で管理されています。基本手順は次の通りです:
- Oracle の公式サイト(Oracle Java 8 JDK ダウンロード)にログインします。
- ライセンスに同意して、該当する RPM(例: jdk-8u231-linux-x64.rpm)をダウンロードします。
- ダウンロードした RPM をサーバーに転送し、次のコマンドでローカルインストールします:
dnf localinstall jdk-8u231-linux-x64.rpm
インストール後、java -version
で Oracle JVM がアクティブか確認します。期待される出力例:
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
注意: Oracle Java は商用利用の場合にライセンス費用や契約が必要になる場合があります。利用規約を確認してください。
運用上のチェックリスト(役割別)
システム管理者:
- リポジトリの信頼性確認
- SELinux とファイアウォールの設定確認
- alternatives の登録とパス確認
- 定期的なセキュリティアップデートの計画
開発者:
- ビルド・ランタイム要件に合わせた JDK を確認
- JAVA_HOME と PATH の設定をプロジェクトで共有
- CI 環境と実稼働の JDK バージョン整合性を保つ
運用(運用担当):
- 変更手順とロールバック手順をドキュメント化
- アプリケーション依存の Java バージョンを記録
- バージョン切替後の簡易動作確認テストを実行
受け入れ基準
- インストール後
java -version
が期待するバージョンを返す - /usr/lib/jvm 以下に該当する JDK ディレクトリが存在する
- alternatives で正しいパスが有効化されている
- アプリケーションの起動テストが成功する
よくあるトラブルと対処法
- dnf がパッケージを見つけない: リポジトリのメタデータを更新する(
dnf makecache
)か、EPEL など必要なリポジトリが有効か確認します。 - PATH 問題で古い Java が優先される:
alternatives --config java
を使って切り替えるか、/etc/profile.d/ 下で JAVA_HOME を再設定します。 - Oracle RPM がインストールできない: ダウンロードが壊れていないか、署名の問題がないかを確認します。
決定フローチャート(どの Java を選ぶか)
flowchart TD
A[サポート要件があるか?] -->|はい| B[Oracle Java を検討]
A -->|いいえ| C[OpenJDK を検討]
C --> D{アプリが Java 8 を要求するか}
D -->|はい| E[OpenJDK 8]
D -->|いいえ| F[OpenJDK 11 以上]
B --> G[ライセンスとコスト確認]
G --> H[契約後に Oracle Java を導入]
運用用プレイブック(短縮版)
- バックアップ: 重要な設定ファイルとアプリケーションをバックアップ
- インストール:
dnf install
またはdnf localinstall
を実行 - 確認:
java -version
と/usr/lib/jvm
を確認 - 切替:
alternatives --config java
を使う - テスト: アプリケーションを再起動して動作確認
- ドキュメント: バージョンと変更日時を記録
テストケース(例)
- インストール後に
java -version
がエラーなく出力されること /usr/lib/jvm/java-11-openjdk-*/bin/java
が実際に実行可能であること- alternatives 切替後、アプリが正常に起動すること
まとめ
CentOS 8 では dnf を使って OpenJDK の主要バージョンを簡単にインストールできます。古いアプリケーション向けには OpenJDK 8、最新機能や長期サポートを求めるなら OpenJDK 11 を選び、必要に応じて Oracle Java を検討してください。複数バージョンをインストールした場合は alternatives
で切り替え、必ず java -version
とアプリケーションの動作確認を行ってください。
重要: Oracle Java を商用で使う場合はライセンスを確認し、必要なら法務や調達と連携してください。
補足: この記事のコマンドや出力はリポジトリとパッケージのバージョンによって変わるため、実行前にリポジトリ情報や公式ドキュメントを確認してください。