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もコマンド名が違うだけで、考え方は同じですね