CentOS 7にJDK(openJDK)をインストールする(rpm)

yumでインストールできるアプリのリストには、最新版が含まれていないことがあります。JDK 10は、まだ含まれていないようだったので(2018年5月時点)、rpmをダウンロードしてインストールしてみたいと思います。

まずは、rpmのダウンロードから。

Oracleのサイトからrpm版のJava SE 10をダウンロードします。License Agreement を忘れずに。

image

rpm版とtar.gz版がありますが、今回はrpm版を使います。ダウンロードしたら適当にサーバへ持ってきます。

rpmファイルのコピーが終わったら、このファイルを置いたディレクトリでインストールを行います。

[root@sakura tmp]# rpm -ivh jdk-10.0.1_linux-x64_bin.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:jdk-10.0.1-2000:10.0.1-ga        ################################# [100%]
Unpacking JAR files...
        plugin.jar...
        javaws.jar...
        deploy.jar...
[root@sakura tmp]#

これでインストールは完了。ちなみにjavaの本体は/usr/javaディレクトリにインストールされています。

[root@sakura tmp]# ls -la /usr/java/
合計 4
drwxr-xr-x   3 root root   50  4月 29 05:29 .
drwxr-xr-x. 14 root root 4096  3月 27 10:18 ..
lrwxrwxrwx   1 root root   16  4月 29 05:29 default -> /usr/java/latest
drwxr-xr-x   9 root root  119  4月 29 05:29 jdk-10.0.1
lrwxrwxrwx   1 root root   20  4月 29 05:29 latest -> /usr/java/jdk-10.0.1
[root@sakura tmp]#
[root@sakura tmp]#

複数のJavaがインストールされている場合、どのバージョンのJavaを使用するかは、alternativesコマンドで指定します。

インストールしたJavaが認識されているかどうかは、以下のようにalternatives –display javaで見れます。

[root@sakura tmp]# alternatives --display java
java - ステータスは手動です。
リンクは現在 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java を指しています。
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java - ファミリー java-1.8.0-openjdk.x86_64 優先度 1800161
 スレーブ appletviewer: (null)
 スレーブ idlj: (null)
 スレーブ javaws: (null)
 スレーブ jcontrol: (null)
 スレーブ jjs: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/jjs
 スレーブ jrunscript: (null)
 スレーブ jweblauncher: (null)
 スレーブ keytool: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/keytool
 スレーブ orbd: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/orbd
 スレーブ pack200: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/pack200
 スレーブ policytool: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/policytool
 スレーブ rmid: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/rmid
 スレーブ rmiregistry: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/rmiregistry
 スレーブ servertool: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/servertool
 スレーブ tnameserv: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/tnameserv
 スレーブ unpack200: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/unpack200
 スレーブ jre_exports: /usr/lib/jvm-exports/jre-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
 スレーブ jre: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre
 スレーブ java.1.gz: /usr/share/man/man1/java-java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64.1.gz
 スレーブ jjs.1.gz: /usr/share/man/man1/jjs-java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64.1.gz
 スレーブ keytool.1.gz: /usr/share/man/man1/keytool-java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64.1.gz
 スレーブ orbd.1.gz: /usr/share/man/man1/orbd-java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64.1.gz
 スレーブ pack200.1.gz: /usr/share/man/man1/pack200-java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64.1.gz
 スレーブ policytool.1.gz: /usr/share/man/man1/policytool-java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64.1.gz
 スレーブ rmid.1.gz: /usr/share/man/man1/rmid-java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64.1.gz
 スレーブ rmiregistry.1.gz: /usr/share/man/man1/rmiregistry-java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64.1.gz
 スレーブ servertool.1.gz: /usr/share/man/man1/servertool-java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64.1.gz
 スレーブ tnameserv.1.gz: /usr/share/man/man1/tnameserv-java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64.1.gz
 スレーブ unpack200.1.gz: /usr/share/man/man1/unpack200-java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64.1.gz
/usr/java/jdk-10.0.1/bin/java - 優先度 100001000
 スレーブ appletviewer: /usr/java/jdk-10.0.1/bin/appletviewer
 スレーブ idlj: /usr/java/jdk-10.0.1/bin/idlj
 スレーブ javaws: /usr/java/jdk-10.0.1/bin/javaws
 スレーブ jcontrol: /usr/java/jdk-10.0.1/bin/jcontrol
 スレーブ jjs: /usr/java/jdk-10.0.1/bin/jjs
 スレーブ jrunscript: /usr/java/jdk-10.0.1/bin/jrunscript
 スレーブ jweblauncher: /usr/java/jdk-10.0.1/bin/jweblauncher
 スレーブ keytool: /usr/java/jdk-10.0.1/bin/keytool
 スレーブ orbd: /usr/java/jdk-10.0.1/bin/orbd
 スレーブ pack200: /usr/java/jdk-10.0.1/bin/pack200
 スレーブ policytool: (null)
 スレーブ rmid: /usr/java/jdk-10.0.1/bin/rmid
 スレーブ rmiregistry: /usr/java/jdk-10.0.1/bin/rmiregistry
 スレーブ servertool: /usr/java/jdk-10.0.1/bin/servertool
 スレーブ tnameserv: /usr/java/jdk-10.0.1/bin/tnameserv
 スレーブ unpack200: /usr/java/jdk-10.0.1/bin/unpack200
 スレーブ jre_exports: (null)
 スレーブ jre: (null)
 スレーブ java.1.gz: (null)
 スレーブ jjs.1.gz: (null)
 スレーブ keytool.1.gz: (null)
 スレーブ orbd.1.gz: (null)
 スレーブ pack200.1.gz: (null)
 スレーブ policytool.1.gz: (null)
 スレーブ rmid.1.gz: (null)
 スレーブ rmiregistry.1.gz: (null)
 スレーブ servertool.1.gz: (null)
 スレーブ tnameserv.1.gz: (null)
 スレーブ unpack200.1.gz: (null)
現在の「最適」バージョンは /usr/java/jdk-10.0.1/bin/java です。
[root@sakura tmp]#

ちょっと見にくいですが、Javaは1.8.0系(Java SE 8)と10.0.1系(Java SE 10)がインストールされているようです。前者はyumで、後者は今rpmでインストールしたものです。

これを切り替えるには、alternatives –config javaコマンドを使用します。

[root@sakura tmp]# alternatives --config java

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

  選択       コマンド
-----------------------------------------------
 + 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java)
*  2           /usr/java/jdk-10.0.1/bin/java

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

番号を入れるか、Enterキーを押せば現在の設定が選択されます。Java 1.8.0のほうが先にインストールされたため、こちらが有効になっていますが、Java 10.0.1のほうを有効にしたければ、2を入れます。

[root@sakura tmp]# java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
[root@sakura tmp]#
[root@sakura tmp]#
[root@sakura tmp]# alternatives --config java

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

  選択       コマンド
-----------------------------------------------
 + 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java)
*  2           /usr/java/jdk-10.0.1/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
[root@sakura tmp]#
[root@sakura tmp]# java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)
[root@sakura tmp]#

切り替え前はJava 1.8.0にパスが通っていたのに対し、切り替え後はちゃんとJava 10.0.1が使用されていることが分かります。

One Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください