CentOS7 64bit版にOracle JDK8をインストールします。
CentOSにはopenjdkがYUMリポジトリで標準提供されておりますが、ここではAlternativesコマンドを使い、openJDKと同居する形でインストールを行います。
また、alternativesコマンドは使用せず、環境変数JAVA_HOMEを設定する形での設定方法も記述します。
Oracle JDKのダウンロードとインストール
OrecleJDKのダウンロードサイトよりProductが “Linux x64″のファイル 「jdk-8u40-linux-x64.rpm」をダウンロードします
ダウンロードしたjdk-8u40-linux-x64.rpmをインストールします
$ sudo yum localinstall jdk-8u40-linux-x64.rpm ※rpmコマンドでインストールすると、yumで管理しているrpmデータベースと食い違いがでてくるので、yumコマンドでインストールしてます。 ちなみに、rpmコマンドの場合だと以下の様になります $ sudo rpm -ivh jdk-8u40-linux-x64.rpm
alternativesコマンドによるJavaVMの切り替え
alternativesコマンドでjavaVMを、OracleJava8に変更します
$ sudo alternatives --config java [sudo] password for admin: 2 プログラムがあり 'java' を提供します。 選択 コマンド ----------------------------------------------- *+ 1 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64/jre/bin/java 2 /usr/java/jdk1.8.0_40/jre/bin/java Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
ここで、Java8を示す「2」を選択します
確認
以下のコマンドを実行し、javaのバージョンが1.8であればOKです
$ java -version java version "1.8.0_40" Java(TM) SE Runtime Environment (build 1.8.0_40-b26) Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
環境変数JAVA_HOMEを設定してバージョンを切り替えたい
alternativesコマンドでなく、環境変数JAVA_HOMEを全ユーザ共通で設定し、Javaのバージョンをコントロールしたい場合、
以下の内容を持つ/etc/profile.d/java.shを作成します
#!/bin/bash JAVA_HOME=/usr/java/jdk1.8.0_40 PATH=$JAVA_HOME/bin:$PATH export PATH JAVA_HOME export CLASSPATH=.
作成後は実行権限を付与します
$ sudo chmod +x /etc/profile.d/java.sh
ログインし直せば、設定は反映されます
確認した結果
$ echo $JAVA_HOME /usr/java/jdk1.8.0_40 $ echo $PATH /usr/java/jdk1.8.0_40/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/admin/.local/bin:/home/admin/bin $ java -version java version "1.8.0_40" Java(TM) SE Runtime Environment (build 1.8.0_40-b26) Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
OKですね
ちなみに、alternativesコマンドで指定されているjavaのバージョンはopenjdk1.7です
$ sudo alternatives --config java 2 プログラムがあり 'java' を提供します。 選択 コマンド ----------------------------------------------- *+ 1 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64/jre/bin/java 2 /usr/java/jdk1.8.0_40/jre/bin/java Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
alternatives派?それとも環境変数派?
alternativesコマンドを使用すると、Javaのバージョンを手軽に切り替えられる利点がありますが、好みの問題かなと思います。
ちなみに、自分は環境変数派です