JDK のインストールと設定

カテゴリ:Java

CentOS/Ubuntu 両対応

OS付属のJDKのインストール

以下のコマンドで OS 付属の JDK をインストールします。

CentOS 7 の場合:

# yum -y install java-11-openjdk-devel

CentOS 8 以降の場合:

# dnf -y install java-11-openjdk-devel

Ubuntu の場合:

# apt -y install default-jdk

以下のコマンドで JDK のバージョンを確認します。

# javac -version

例)

# javac -version
javac 11.0.12

Oracle JDKのインストール

クライアントマシンでOracleのサイト(https://www.oracle.com/)から JDK をダウンロードし、scp コマンド等で VPS にアップロードします。

以下のコマンドでJDKをインストールします。

CentOS 7 の場合:

# yum -y install jdk-16.0.2_linux-x64_bin.rpm

CentOS 8 以降の場合:

# dnf -y install jdk-16.0.2_linux-x64_bin.rpm

Ubuntu の場合:

# dpkg -i jdk-16.0.2_linux-x64_bin.deb

使用するJDKを設定

JDKを登録および使用するJDKを選択する場合は、alternativesコマンド(Ubuntuの場合は、update-alternativesコマンド)を使用します。

インストールされているJRE/JDKを確認

以下のコマンドでインストールされているJRE/JDKの一覧を表示します。先ほどインストールしたOracleのJDKはすでに自動で登録されていることが確認できます。

CentOS の場合:

# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el8_4.x86_64/bin/java)
*+ 2           /usr/java/jdk-16.0.2/bin/java

Enter to keep the current selection[+], or type selection number:

しかしUbuntuの場合は、先ほどインストールした Oracle JDK 1.6 の登録がないことが分かります。

Ubuntu の場合:

# update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press  to keep the current choice[*], or type selection number:

JDKを登録する場合

まず、/usr/lib/jvm/配下のJDKのパス(Ubuntu の場合)を確認します。するとjdk-16.0.2というフォルダが確認できます。つまりjavacのパスは/usr/lib/jvm/jdk-16.0.2/bin/javacとなります。

# ls /usr/lib/jvm/
default-java               java-1.8.0-openjdk-amd64  java-8-openjdk-amd64  openjdk-11
java-1.11.0-openjdk-amd64  java-11-openjdk-amd64     jdk-16.0.2

JDKを手動で登録する場合は、--installオプションの後ろにリンク、名前、JDKのパス、優先度を指定します。

--install リンク 名前 パス 優先度

参考 「リンク」は、/etc/alternatives/名前へのシンボリックリンクです。
「名前」は、該当リンクグループのマスター名です。
「パス」は、代替ターゲットファイル(javac)の場所です。
「優先度」は整数を指定します。自動モードでは、数値が大きいほど優先度が高くなります。そのため、一般的にはJDKのバージョンを整数値に変換して指定します。(16.0.2->1602)

CentOS の場合:

# alternatives --install /usr/bin/java java /usr/java/jdk-16.0.2/bin/java 1602

Ubuntu の場合:

# update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-16.0.2/bin/javac 1602

再度、インストールされているJRE/JDKの一覧を確認すると、先ほどは無かったjdk-16.0.2が追加されていることが確認できます。

# update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/jdk-16.0.2/bin/javac                1602      auto mode
* 1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  3            /usr/lib/jvm/jdk-16.0.2/bin/javac                1602      manual mode

Press  to keep the current choice[*], or type selection number:

JDKの登録を削除する場合

もし間違って登録してしまった場合など、JDKの登録を削除する場合は、--removeオプションの後ろに名前、JDKのパスを指定します。

--remove 名前 パス

CentOS の場合:

# alternatives --remove java /usr/java/jdk-16.0.2/bin/java

Ubuntu の場合:

# update-alternatives --remove java /usr/lib/jvm/jdk-16.0.2/bin/javac

使用するJDKを変更

使用するJDKを変更する場合は、以下のように使用するJDKの番号を指定します。

Ubuntu の場合:

# update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/jdk-16.0.2/bin/javac                1602      auto mode
* 1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  3            /usr/lib/jvm/jdk-16.0.2/bin/javac                1602      manual mode

Press  to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/lib/jvm/jdk-16.0.2/bin/javac to provide /usr/bin/java (java) in manual mode

以下のように、/etc/alternatives/javaのシンボリックリンク先が/usr/lib/jvm/jdk-16.0.2/bin/javacに変更されています。

# ls -la /etc/alternatives/java
lrwxrwxrwx 1 root root 33 Aug 23 11:02 /etc/alternatives/java -> /usr/lib/jvm/jdk-16.0.2/bin/javac

そして、/etc/alternatives/javaは/usr/bin/javaからシンボリックリンクされています。

# ls -la /usr/bin/java
lrwxrwxrwx 1 root root 22 Aug 23 03:56 /usr/bin/java -> /etc/alternatives/java

使用中のJavaのバージョンを確認

javaコマンドに-versionオプションを付けて実行します。

CentOS の場合:

# java --version
java 16.0.2 2021-07-20
Java(TM) SE Runtime Environment (build 16.0.2+7-67)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)

Ubuntu の場合:

# java -version
javac 16.0.2

公開日時:2014年08月09日 07:33:33
最終更新日時:2021年08月23日 20:41:44

なお、VPS選びで迷ったら、こちらの記事で主要VPSのメモリ容量ごとの月額、年額料金を比較していますので、是非参考にしてみてください。

Javaに戻る

このページのトップに戻る