CLOVER🍀

That was when it all began.

Ubuntu Linux 22.04 LTSにOpenJDK 21をインストールする

これは、なにをしたくて書いたもの?

OpenJDK 21が2023年9月19日にリリースされました。

The Arrival of Java 21

JDK 21 Documentation - Home

JDK 21ドキュメント - ホーム

いつものことながら、Ubuntu Linuxの現行LTSで使えるようになるまでは時間がかかるので待っていたのですが、気づくとリリースされて
いたのでインストールしておきます。

対象は、Ubuntu Linux 22.04 LTSです。

OpenJDK 21パッケージ

Ubuntu LinuxでのOpenJDK 21パッケージはこちら。

openjdk-21 package in Ubuntu

Ubuntu Linux 22.04 LTSでは11月末に使えるようになっていたようです。

現時点で、OpenJDK 21がインストール可能なUbuntu Linuxは以下のようです。

  • Mantic Minotaur(23.10)
  • Lunar Lobster (23.04)
  • Jammy Jellyfish (22.04 LTS)

そして、Focal Fossa(20.04 LTS)へも入りそうですが、現時点では提案段階です。

環境

今回の環境はこちら。Ubuntu Linux 22.04 LTSです。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy


$ uname -srvmpio
Linux 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

OpenJDK 21をインストールする

まずはopenjdk-21-jdkの情報を見てみます。

$ apt show openjdk-21-jdk
Package: openjdk-21-jdk
Version: 21.0.1+12-2~22.04
Priority: optional
Section: universe/java
Source: openjdk-21
Origin: Ubuntu
Maintainer: OpenJDK Team <openjdk-21@packages.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 55.3 kB
Provides: java-compiler, java-sdk (= 21), java10-sdk, java11-sdk, java12-sdk, java13-sdk, java14-sdk, java15-sdk, java16-sdk, java17-sdk, java18-sdk, java19-sdk, java2-sdk, java20-sdk, java21-sdk, java5-sdk, java6-sdk, java7-sdk, java8-sdk, java9-sdk
Depends: openjdk-21-jre (= 21.0.1+12-2~22.04), openjdk-21-jdk-headless (= 21.0.1+12-2~22.04), libc6 (>= 2.34), zlib1g (>= 1:1.1.4)
Recommends: libxt-dev
Suggests: openjdk-21-demo, openjdk-21-source, visualvm
Homepage: https://openjdk.java.net/
Download-Size: 10.9 kB
APT-Sources: http://jp.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages
Description: OpenJDK Development Kit (JDK)
 OpenJDK is a development environment for building applications,
 applets, and components using the Java programming language.

OpenJDK 21に関するパッケージ。

$ apt search openjdk-21
ソート中... 完了
全文検索... 完了
openjdk-21-dbg/jammy-updates 21.0.1+12-2~22.04 amd64
  Java runtime based on OpenJDK (debugging symbols)

openjdk-21-demo/jammy-updates 21.0.1+12-2~22.04 amd64
  Java runtime based on OpenJDK (demos and examples)

openjdk-21-doc/jammy-updates,jammy-updates 21.0.1+12-2~22.04 all
  OpenJDK Development Kit (JDK) documentation

openjdk-21-jdk/jammy-updates 21.0.1+12-2~22.04 amd64
  OpenJDK Development Kit (JDK)

openjdk-21-jdk-headless/jammy-updates 21.0.1+12-2~22.04 amd64
  OpenJDK Development Kit (JDK) (headless)

openjdk-21-jre/jammy-updates 21.0.1+12-2~22.04 amd64
  OpenJDK Java runtime, using Hotspot JIT

openjdk-21-jre-headless/jammy-updates 21.0.1+12-2~22.04 amd64
  OpenJDK Java runtime, using Hotspot JIT (headless)

openjdk-21-jre-zero/jammy-updates 21.0.1+12-2~22.04 amd64
  Alternative JVM for OpenJDK, using Zero

openjdk-21-source/jammy-updates,jammy-updates 21.0.1+12-2~22.04 all
  OpenJDK Development Kit (JDK) source files

現時点で自分の環境にインストールしているOpenJDKはこちらです。

$ update-alternatives --list java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

全部LTSですね。

では、OpenJDK 21をインストールします。

$ sudo apt install openjdk-21-jdk

OpenJDK 21が増えました。

$ update-alternatives --list java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
/usr/lib/jvm/java-21-openjdk-amd64/bin/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

インストールした時点でデフォルトに設定されています。

$ sudo update-alternatives --config java
alternative java (/usr/bin/java を提供) には 4 個の選択肢があります。

  選択肢    パス                                          優先度  状態
------------------------------------------------------------
* 0            /usr/lib/jvm/java-21-openjdk-amd64/bin/java      2111      自動モード
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      手動モード
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      1711      手動モード
  3            /usr/lib/jvm/java-21-openjdk-amd64/bin/java      2111      手動モード
  4            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:


$ sudo update-alternatives --config javac
alternative javac (/usr/bin/javac を提供) には 4 個の選択肢があります。

  選択肢    パス                                        優先度  状態
------------------------------------------------------------
* 0            /usr/lib/jvm/java-21-openjdk-amd64/bin/javac   2111      自動モード
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac   1111      手動モード
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/javac   1711      手動モード
  3            /usr/lib/jvm/java-21-openjdk-amd64/bin/javac   2111      手動モード
  4            /usr/lib/jvm/java-8-openjdk-amd64/bin/javac    1081      手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:

確認。

$ java --version
openjdk 21.0.1 2023-10-17
OpenJDK Runtime Environment (build 21.0.1+12-Ubuntu-222.04)
OpenJDK 64-Bit Server VM (build 21.0.1+12-Ubuntu-222.04, mixed mode, sharing)


$ javac --version
javac 21.0.1

これでやっとOpenJDK 21が使えるようになりました。