-100p

-10p

+10p

+100p

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

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

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

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

現状のJavaの環境を確認


どのjavaのバージョンがシステム上で設定されているか確認するために、下記コマンドを打ちこむ。
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 /usr/lib/jvm
結果自分の環境では上述のjava-11しかインストールしていなかった。
Windows側ではjava-22で開発していたので、これでは全く足りない。

新しいJavaをインストール

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

次に新しいJavaをインストール。Windowsの環境と同一にするため、下記のコマンドを打ちこんでみた。
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

おかしいなと思い、インストール可能なすべてjavaを下記のコマンドで確認。
apt search openjdk
けっこう長い行が表示されるが、どこを見渡しても確かにjava-22は配布してなかった。

OpenJDKのHP見ると22は配布されてるので、なんかおかしいなと思ったが、無いものは無いので潔く諦めた。
21はインストール可能なので、Windows側をまずjava-21にダウングレードし、Ubuntu側も次のコマンドで同じものをインストールした。
sudo apt install openjdk-21-jdk

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

使用Javaを切り替える

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

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に切り替わっているのを確認。
0
0

-100p

-10p

+10p

+100p