Linux

UbuntuにJava(openJDK)をaptでインストールする手順と複数バージョンの切り替え方法

*記事内に商品プロモーションを含む場合があります

Ubuntuに aptコマンドで Java (openJDK) をインストールする手順と複数バージョンの切り替え方法について説明します。

事前の作業

インストールされているjavaを確認

$ sudo apt list –installed | grep jdk

# 

$sudo apt list --installed | grep jdk

openjdk-18-jdk-headless/jammy,now 18~36ea-1 amd64 [installed]
openjdk-18-jre-headless/jammy,now 18~36ea-1 amd64 [installed]

$ java -version
openjdk version "18-ea" 2022-03-22
OpenJDK Runtime Environment (build 18-ea+36-Ubuntu-1)
OpenJDK 64-Bit Server VM (build 18-ea+36-Ubuntu-1, mixed mode, sharing)

$ javac -version
javac 18-ea

openjdk 18 の実行環境のJREと開発環境のJDKがインストールされています。

更新インストール(アップデート)

インストール済みでも再度 aptを実行すると最新版にレビジョンアップされます。

$ sudo apt install openjdk-18-jre

$ sudo apt install openjdk-18-jdk

インストール

パッケージ全体を最新に更新

パッケージを最新に更新します。
本番環境マシンなど、パッケージのレビジョンアップが禁止されている場合は実行しないように。

・パッケージ一覧を更新 : sudo apt update
・パッケージを更新   : sudo apt upgrade

どのJavaのバージョンが使えるか確認します。

$sudo apt search openjdk-\(\.\)\+-jre

$sudo apt search openjdk-\(\.\)\+-jdk

# 
#
$ sudo apt search openjdk-\(\.\)\+-jre
$ sudo apt search openjdk-\(\.\)\+-jdk

 openjdk-11-jdk/jammy-updates,jammy-security 11.0.15+10-0ubuntu0.22.04.1 amd64  OpenJDK Development Kit (JDK) 
 openjdk-17-jdk/jammy-updates,jammy-security 17.0.3+7-0ubuntu0.22.04.1 amd64 OpenJDK Development Kit (JDK) 
 openjdk-18-jdk/jammy 18~36ea-1 amd64 OpenJDK Development Kit (JDK) 
 openjdk-8-jdk/jammy 8u312-b07-0ubuntu1 amd64 OpenJDK Development Kit (JDK)

java 11, 17 , 18, 8が使えるようです。

javaインストール

システムによっては、古いjavaが必要な場合もあるので、
Java 11をインストールするパターンで説明します。

# 
$ sudo apt install openjdk-11-jre

$ sudo apt install openjdk-11-jdk

利用するJavaのバージョンの切り替え

update-alternativesコマンドで切り替え可能です。

sudo update-alternatives –config java

sudo update-alternatives –config java

以下は、javaランタイムを 18 から 11 に切り替える操作です。
現在、3(java 8)になっているので、1を指定して切り替えます。

javac(jdk) も同様です。 (jreとjdkとは別々に操作が必要です)

# 
# JDKの切り替え
$ sudo update-alternatives --config javac
There are 3 choices for the alternative javac (providing /usr/bin/javac).

Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-18-openjdk-amd64/bin/javac 1811 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/javac 1111 manual mode
2 /usr/lib/jvm/java-18-openjdk-amd64/bin/javac 1811 manual mode
* 3 /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 1081 manual mode
  
Press to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/javac to provide /usr/bin/javac (javac) in manual mode

$ javac -version
javac 11.0.15

# 
# JREの切り替え
$ sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

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

Press to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/java to provide /usr/bin/java (java) in manual mode

$ java -version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)

コンパイルは、javac 11で実施し、実行確認を java 11 と18で行うときなどに便利ですね。いちいち入れ替えなくて切り替えだけで済みますね。

おわりに

Ubuntuに いろいろなバージョンのjava(JDK) をインストールする手順と複数バージョンの切り替え方法を説明しました。

CentOSもUbuntuもコマンド名が違うだけで、考え方は同じですね

CentOS_java-yumインストール
CentOSにJava(openJDK)をyumでインストールする手順と複数バージョンの切り替え方法CentOS に yumで Java 8(openJDK) をインストールする手順と複数バージョンの切り替え方法について説明します。 ...