Ubuntu環境、Javaのインストールとバージョン切替

Ubuntu環境、Javaのインストールとバージョン切替

Ubuntu環境でJava(JDK)をインストール。
複数のJavaがある際のバージョンの切り替え方。

関連ページ 参考URL
このサイトはUbuntu上で動いていますが、HPの記事更新はWindowsで行い、warに圧縮してUbuntuにアップロードするという歪な作業環境で運営してます。
先日Windows側のPCを買い替えて、ついでにJavaの環境も一新したので、Ubuntu側のJavaもアップデートする必要がありました。

Tomcatの方で謎のエラーが出続けたものの、この問題はUbuntuとは別問題だったので 次のページ で分けて解説します。
Ubuntu自体は割と簡単にJavaアップデートできました。

現状のJavaの環境を確認


どのjavaのバージョンがシステム上で設定されているか確認するために、
java -version
を打ちこみます。
java -version
ここでエラーが出る場合、そもそもJavaがインストールされていない可能性が高いです。

自分の場合、11.0.22というやたら古いjavaが選択されていました。
openjdk version "11.0.22" 2024-01-16
OpenJDK Runtime Environment (build 11.0.22+7-post-Ubuntu-0ubuntu220.04.1)
OpenJDK 64-Bit Server VM (build 11.0.22+7-post-Ubuntu-0ubuntu220.04.1, mixed mode, sharing)

次にUbuntu環境にインストールされている全てのjavaを見てみます。
Ubuntu環境では、javaは
/usr/lib/jvm
のディレクトリ下にインストールされているのでそこに
cdコマンド
で移動します。
cd /usr/lib/jvm
結果自分の環境では上述のjava-11しかインストールしていませんでした。
Windows側ではjava-22で開発していたので、これでは全く足りない。

新しいJavaをインストール

作業前に、とりあえずパッケージ管理システムであるaptを
apt update
アップデートしておきます。
Linuxはapt-getとaptがあって紛らわしいですが、基本的にaptはapt-getの上位互換になります。
sudo apt update

次に新しいJavaをインストール。Windowsの環境と同一にするため、
apt install
でjava-22をインストールしようとしました。
sudo apt install openjdk-22-jdk
するとどういう訳か見つからないというエラーが出てきました。
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package openjdk-22-jdk
openjdk-22が見つからない

おかしいなと思い、
apt search openjdk
でインストール可能なすべてjavaを下記のコマンドで確認。
apt search openjdk
けっこう長い行が表示されますが、どこを見渡しても確かにjava-22は配布していませんでした。
openjdk-22が本当に見つからない
OpenJDKのHP見ると22は配布されてるので、なんかおかしいなと思いましたが、無いものは無いので潔く諦めました。
21はインストール可能なので、Windows側をまずjava-21にダウングレードし、Ubuntu側も次のコマンドで同じものをインストールしました。
sudo apt install openjdk-21-jdk

インストール後の/usr/lib/jvmの状況は次の通り。
java-21のインストール後の状況

使用Javaを切り替える

現在選択されているJavaを切り替えるには、
update-alternatives --config java
を打ちこみます。
sudo update-alternatives --config java
すると次のような画面が表示される。 javaの切り替え画面
対応する番号を打ち込んでEnterを押すと、そのJavaのバージョンに切り替わります。
ここでは2を打ち込んでjava-21に切り替え。

java -version
でJavaの状況を確認してみます。
java -version
openjdk version "21.0.2" 2024-01-16
OpenJDK Runtime Environment (build 21.0.2+13-Ubuntu-120.04.1)
OpenJDK 64-Bit Server VM (build 21.0.2+13-Ubuntu-120.04.1, mixed mode, sharing)
無事に21に切り替わっているのを確認、これでOKです。
0
0