原文はこちら。
The original article was written by Ana-Maria Mihalceanu (Senior Developer Advocate, Oracle).
https://inside.java/2025/12/16/quality-heads-up/
OpenJDK Quality Groupは、リリースの全体的な品質向上の手段としてOpenJDKビルドを使ってのFOSSプロジェクトのテストを推進しています。
Quality Outreach
https://wiki.openjdk.java.net/display/quality/Quality+Outreach
このHeads upは、関係するプロジェクトに送られる定期的なコミュニケーションの一部です。このプログラムの詳細と参加方法については、上記wikiをご覧ください。
The quality-discuss Archives
https://mail.openjdk.org/pipermail/quality-discuss/
Align Behavior and Documentation About Jlink Compression
The jlinkツールガイドによると、圧縮レベルを--compressオプションもしくはその短縮フォームである-cを使って設定できる、とあります。
The jlink Command
https://docs.oracle.com/en/java/javase/25/docs/specs/man/jlink.html
jlink --module-path $JAVA_HOME/jmods/ \
--add-modules java.base \
--compress=zip-1 \
--output runtime
さらに、ドキュメントには記載がありませんが、以下のようなコマンドを使うと、非推奨の圧縮レベル2で圧縮された実行イメージを生成できます。
jlink --module-path $JAVA_HOME/jmods/ \
--add-modules java.base \
-c \
--output runtime
ただJDK 26 以前では、jlink に -c を引数として続けて使用するとエラーが発生していました。この動作はJDK 26で修正され、jlinkを--compressまたは-cのいずれかで実行しても、同じ結果が得られるようになっています。
jlink --module-path $JAVA_HOME/jmods/ \
--add-modules java.base \
-c zip-1 \
--output runtime
Call to Action
jlinkの-cおよび--compressの動作が統一されたため、両オプションとも引数の指定が必要になりました。圧縮レベルを指定せずにjlink -cを使用する場合は、レベルを選択するか、オプション自体を省略することをお勧めします。後者の場合、生成されるランタイムイメージはデフォルトの圧縮レベル(zip-6)で圧縮されます。
この修正は、Java 26 EAメインラインビルドに取り込まれ、Build 27以後でご利用いただけます。この変更の詳細は、JDK-8321139をご確認ください。
JDK 26 Early Access
https://jdk.java.net/26/
[JDK-8321139] jlink’s compression plugin doesn’t handle -c option correctly
https://bugs.openjdk.org/browse/JDK-8321139