java をwget → alternativesで管理 (JDK 10のインストール)

JDK10が出たらしいですね。

最近知りました。 alternativesを使えば、javaのバージョン管理が簡単にできちゃいます。

ダウンロードも簡単にできちゃいます。

いちいち面倒ですよね。wgetで落としたいですよね。

ここを参考にしました。ダウンロード先のリンクが切れてたので更新してあります。

Java 10

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm

Java 8

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm

インストール

ただのrpmパッケージなのでyum install でインストール。 CentOSじゃない人は適宜インストール。

Java 10

sudo rpm -ivh jdk-10.0.2_linux-x64_bin.rpm

Java 8

sudo rpm -ivh jdk-8u181-linux-x64.rpm

確認

$ ls /usr/java/
jdk-10.0.2  jdk1.8.0_181-amd64

しっかりインストールされてる。

alternativesに登録

JDK 8を優先順位1番に、JDK 10を優先順位2番目に設定します。

$ sudo alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_181-amd64/bin/java 1
$ sudo alternatives --install /usr/bin/java java /usr/java/jdk-10.0.2/bin/java 2

インストールされているバージョンの確認は alternatives --configでできます。 同時にこのコマンドでインタラクティブにバージョンの変更ができちゃいます。

$ alternatives --config java

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

  選択       コマンド
-----------------------------------------------
*  1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/java)
 + 2           /usr/java/jdk-10.0.2/bin/java
   3           /usr/java/jdk1.8.0_181-amd64/jre/bin/java
   4           /usr/java/jdk1.8.0_181-amd64/bin/java

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

+が付いているバージョンが現在のバージョンです。 * が付いているバージョンが優先順位が最も高いバージョンです。

不要なバージョンの削除

いらないjava(yum installで入れたもの / デフォルトで入っていたもの/jdkと一緒に入ったjre)を削除します。

$ sudo alternatives --remove java /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/java
$ sudo alternatives --remove java /usr/java/jdk1.8.0_181-amd64/jre/bin/java

もう一回確認してみましょう。

$ alternatives --config java

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

  選択       コマンド
-----------------------------------------------
*  1           /usr/java/jdk1.8.0_181-amd64/bin/java
 + 2           /usr/java/jdk-10.0.2/bin/java

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

綺麗になりました!

$ alternatives --config java

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

  選択       コマンド
-----------------------------------------------
*  1           /usr/java/jdk1.8.0_181-amd64/bin/java
 + 2           /usr/java/jdk-10.0.2/bin/java

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

2を選択することで、JDK 10に変更してみましょう。

最後にバージョンを確認してみましょう。

$ java -version
java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)

おっけーですね。

参考:
Linuxでjdkをwgetする方法
CentOSのalternativesでJavaのバージョン管理 - TASK NOTES