[CentOS7]Oracle Java8をインストール


CentOS7 64bit版にOracle JDK8をインストールします。
CentOSにはopenjdkがYUMリポジトリで標準提供されておりますが、ここではAlternativesコマンドを使い、openJDKと同居する形でインストールを行います。
また、alternativesコマンドは使用せず、環境変数JAVA_HOMEを設定する形での設定方法も記述します。



Oracle JDKのダウンロードとインストール

OrecleJDKのダウンロードサイトよりProductが “Linux x64″のファイル 「jdk-8u40-linux-x64.rpm」をダウンロードします

centos7-java8

ダウンロードした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のバージョンを手軽に切り替えられる利点がありますが、好みの問題かなと思います。
ちなみに、自分は環境変数派です