CLOVER🍀

That was when it all began.

Java 9以降の変更点のサマリーをドキュメントで見る

前に、Javaの新しいAPIについてはJavadocで確認できるようになっていることを紹介しました。

Java 11から17までのJEP、新しいAPIのまとめ - CLOVER🍀

言語の変更点については、こちらのドキュメントを見るとまとまっていてよさそうです。

Java 11。

Java言語の変更のサマリー

Java 17。

Java言語の変更のサマリー

Java 21。

Java言語の変更のサマリー

Java 25については、まだ英語版のみですね。

Java Language Changes Summary

これを見ると、Java 9以降の言語の変更点がまとまっているのでどういう変化があったのかとてもわかりやすいです。

Javadocと合わせて見ておくとよいでしょうね。

このあたりも参考に。

JEPs in JDK 17 integrated since JDK 11

JEPs in JDK 21 integrated since JDK 17

JEPs in JDK 25 integrated since JDK 21

Ubuntu Linux 24.04 LTSにOpenJDK 25をインストールする

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

OpenJDK 25が2025年9月16日にリリースされました。

The Arrival of Java 25

JDK 25 Documentation - Home

Ubuntu Linuxにもそのうち使えるようになるだろうとは思っていましたが、現行のLTSである24.04に入るのには時間がかかると予想していたら
もう入っていたのでインストールしておきます。

OpenJDK 25パッケージ

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

openjdk-25 package : Ubuntu

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

  • Questing Quokka(25.10)
  • Plucky Puffin(25.04)
  • Noble Numbat(24.04 LTS)
  • Jammy Jellyfish(22.04 LTS)

環境

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

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.3 LTS
Release:        24.04
Codename:       noble


$ uname -srvmpio
Linux 6.8.0-85-generic #85-Ubuntu SMP PREEMPT_DYNAMIC Thu Sep 18 15:26:59 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

OpenJDK 25をインストールする

まずはopenjdk-25-jdkパッケージの情報を見てみます。

$ apt show openjdk-25-jdk
Package: openjdk-25-jdk
Version: 25+36-1~24.04.2
Priority: optional
Section: universe/java
Source: openjdk-25
Origin: Ubuntu
Phased-Update-Percentage: 60
Maintainer: OpenJDK Team <openjdk-25@packages.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 3,943 kB
Provides: java-compiler, java-sdk (= 25)
Depends: openjdk-25-jre (= 25+36-1~24.04.2), openjdk-25-jdk-headless (= 25+36-1~24.04.2), libc6 (>= 2.34)
Recommends: libxt-dev
Suggests: openjdk-25-demo, openjdk-25-source, visualvm
Homepage: https://openjdk.java.net/
Download-Size: 3,711 kB
APT-Sources: http://jp.archive.ubuntu.com/ubuntu noble-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 25に関するパッケージ。

$ apt search openjdk-25
ソート中... 完了
全文検索... 完了
openjdk-25-dbg/noble-updates 25+36-1~24.04.2 amd64
  Java runtime based on OpenJDK (debugging symbols)

openjdk-25-demo/noble-updates 25+36-1~24.04.2 amd64
  Java runtime based on OpenJDK (demos and examples)

openjdk-25-doc/noble-updates,noble-updates 25+36-1~24.04.2 all
  OpenJDK Development Kit (JDK) documentation

openjdk-25-jdk/noble-updates 25+36-1~24.04.2 amd64
  OpenJDK Development Kit (JDK)

openjdk-25-jdk-headless/noble-updates 25+36-1~24.04.2 amd64
  OpenJDK Development Kit (JDK) (headless)

openjdk-25-jre/noble-updates 25+36-1~24.04.2 amd64
  OpenJDK Java runtime, using Hotspot JIT

openjdk-25-jre-headless/noble-updates 25+36-1~24.04.2 amd64
  OpenJDK Java runtime, using Hotspot JIT (headless)

openjdk-25-jre-zero/noble-updates 25+36-1~24.04.2 amd64
  Alternative JVM for OpenJDK, using Zero

openjdk-25-jvmci-jdk/noble-updates 25+36-1~24.04.2 amd64
  JVMCI-enabled SDK for building graalvm

openjdk-25-source/noble-updates,noble-updates 25+36-1~24.04.2 all
  OpenJDK Development Kit (JDK) source files

openjdk-25-testsupport/noble-updates 25+36-1~24.04.2 amd64
  Java runtime based on OpenJDK (regression test support)

ちなみに、現時点で自分の環境にインストールしている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-21-openjdk-amd64/bin/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

全部LTSです。

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

$ sudo apt install openjdk-25-jdk

OpenJDK 25が増えました。

$ 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-25-openjdk-amd64/bin/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

インストールが完了すると、デフォルトに設定されています。

$ update-alternatives --display java
java - 自動モード
  最適なリンクのバージョンは '/usr/lib/jvm/java-25-openjdk-amd64/bin/java' です
  リンクは現在 /usr/lib/jvm/java-25-openjdk-amd64/bin/java を指しています
  リンク java は /usr/bin/java です
  スレーブ java.1.gz は /usr/share/man/man1/java.1.gz です
/usr/lib/jvm/java-11-openjdk-amd64/bin/java - 優先度 1111
  スレーブ java.1.gz: /usr/lib/jvm/java-11-openjdk-amd64/man/man1/java.1.gz
/usr/lib/jvm/java-17-openjdk-amd64/bin/java - 優先度 1711
  スレーブ java.1.gz: /usr/lib/jvm/java-17-openjdk-amd64/man/man1/java.1.gz
/usr/lib/jvm/java-21-openjdk-amd64/bin/java - 優先度 2111
  スレーブ java.1.gz: /usr/lib/jvm/java-21-openjdk-amd64/man/man1/java.1.gz
/usr/lib/jvm/java-25-openjdk-amd64/bin/java - 優先度 2511
  スレーブ java.1.gz: /usr/lib/jvm/java-25-openjdk-amd64/man/man1/java.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java - 優先度 1081
  スレーブ java.1.gz: /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz


$ update-alternatives --display javac
javac - 自動モード
  最適なリンクのバージョンは '/usr/lib/jvm/java-25-openjdk-amd64/bin/javac' です
  リンクは現在 /usr/lib/jvm/java-25-openjdk-amd64/bin/javac を指しています
  リンク javac は /usr/bin/javac です
  スレーブ javac.1.gz は /usr/share/man/man1/javac.1.gz です
/usr/lib/jvm/java-11-openjdk-amd64/bin/javac - 優先度 1111
  スレーブ javac.1.gz: /usr/lib/jvm/java-11-openjdk-amd64/man/man1/javac.1.gz
/usr/lib/jvm/java-17-openjdk-amd64/bin/javac - 優先度 1711
  スレーブ javac.1.gz: /usr/lib/jvm/java-17-openjdk-amd64/man/man1/javac.1.gz
/usr/lib/jvm/java-21-openjdk-amd64/bin/javac - 優先度 2111
  スレーブ javac.1.gz: /usr/lib/jvm/java-21-openjdk-amd64/man/man1/javac.1.gz
/usr/lib/jvm/java-25-openjdk-amd64/bin/javac - 優先度 2511
  スレーブ javac.1.gz: /usr/lib/jvm/java-25-openjdk-amd64/man/man1/javac.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/bin/javac - 優先度 1081
  スレーブ javac.1.gz: /usr/lib/jvm/java-8-openjdk-amd64/man/man1/javac.1.gz

変更する場合は、こちらで。

$ sudo update-alternatives --config java


$ sudo update-alternatives --config javac

自分はパッケージでインストールしたJavaのバージョン切り替えにもSDKMANを使っているので、今回もこちらで切り替えられるようにします。

Ubuntu Linux 24.04 LTSのaptパッケージでインストールしたOpenJDKをSDKMANで管理する - CLOVER🍀

今回インストールしたOpenJDK 25を、「25」という名前で設定

$ sdk install java 25 /usr/lib/jvm/java-25-openjdk-amd64

デフォルトに設定。

$ sdk default java 25
setting java 25 as the default version for all shells.

確認。

$ java --version
openjdk 25 2025-09-16
OpenJDK Runtime Environment (build 25+36-Ubuntu-124.04.2)
OpenJDK 64-Bit Server VM (build 25+36-Ubuntu-124.04.2, mixed mode, sharing)


$ javac --version
javac 25

これで、自分の環境でもOpenJDK 25が使えるようになりました。