CentOS 7/Oracle JDKをインストールする

提供: MonoBook
ナビゲーションに移動 検索に移動

CentOS7の公式Javaは「Oracle JDK」ではなく「OpenJDK」となっている。 OracleJDKOpenJDKのクラス互換性は97%と言われるが「残り3%のクラス」にやたらと使われていた画像処理関連(JPEGのエンコーダーなど)が含まれるため、Javaアプリの中にはOpenJDKで動かないものが結構あり、どうしてもOracle JDKを入れたい場面が出てくる。

手順[編集 | ソースを編集]

OpenJDKを入れる[編集 | ソースを編集]

まずOpenJDKをyumから入れる。事前にOpenJDKを入れておくのは、後々に「OpenJDKに依存する他のyumパッケージ」を入れた際に、そのタイミングでJDKがOracleJDKからOpenJDKに勝手に切り替わり大混乱に陥ることがあるためである。このためOpenJDKを使わなくても入れておき、実質無効化しておくことが推奨される。

$ yum install java-1.8.0-openjdk

Oracle JDKを入れる[編集 | ソースを編集]

次にOracle JDKを入れる。 OracleJDKのRPMはOracleのサイトから事前にダウンロードしておく。

注意点としてはrpmコマンドではなくyumコマンドで入れること。rpmコマンドで入れるとyumのデータベースが壊れる。

$ yum localinstall jdk-8u141-linux-x64.rpm

Oracle JDKを登録する[編集 | ソースを編集]

CentOS7にJDKが複数あることを登録する必要がある。 rpmを入れただけで自動登録されたりはしない。 この説明を飛ばしているサイトばかりで凄い悩んだ。 優先度(末尾の17000)はなんでもいい。

$ alternatives --install /usr/bin/java java /usr/java/default/bin/java 17000

Oracle JDKを使う設定にする[編集 | ソースを編集]

Oracle JDKは「/usr/java/」ディレクトリにインストールされるのでそれっぽい方を選べ。

$ alternatives --config java

2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/jre/bin/java)
   2           /usr/java/default/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

Javaのバージョンを確認する[編集 | ソースを編集]

$ java -version
java version "1.8.0_141"
Java(TM) SE Runtime Environment (build 1.8.0_141-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]