OpenJDK Quality Groupから、次期LTS候補としても注目されるJDK 27に向けた最新のアップデート情報が届きました。

2026年4月21日、OracleのDavid Delabassee氏は、JDK 27において長らく保守されていなかった翻訳リソースを削除することを発表しました。

この変更は、リソースの品質維持と、不正確な多言語メッセージによる混乱を防ぐことを目的としています。

Javaエコシステムの全体的な品質向上を目指す「Quality Outreach」活動の一環として、開発者への早期の確認が呼びかけられています。

翻訳リソース整理の背景と現状

JDKには多くのロケール用リソースファイルが含まれていますが、そのすべてがアクティブに維持されているわけではありません。

現在、ベースとなる英語リソース以外で継続的にメンテナンスされているのは、ドイツ語、日本語、中国語 (簡体字) の3言語のみに限定されています。

その他のロケールについては、時間の経過とともに英語の原文と内容が乖離し、古い情報や誤ったメッセージが含まれるリスクが高まっていました。

Oracle JDKなどの商用ビルドでは以前からこれらのリソースを除外していましたが、OpenJDKのソースツリーには依然として残されており、他のビルド環境では不完全な翻訳が利用可能な状態でした。

JDK 27における具体的な変更内容

JDK 27では、メンテナンスが行われていない翻訳リソースがソースコードから完全に削除されます。

これにより、サポート対象外のロケールを使用していた環境では、メッセージがデフォルトの英語で表示されるようになります。

削除対象から除外される java.desktop モジュール

今回の整理において、唯一の例外となるのが java.desktop モジュールです。

このモジュールに含まれるGUI関連の文字列は、開発者だけでなくJavaアプリケーションのエンドユーザーが直接目にする機会が多くあります。

また、これらのリソースは比較的安定しており、削除による影響が大きすぎると判断されたため、当面は維持されることが決定しました。

開発者への影響と互換性リスク

この変更による互換性リスクは「中程度 (moderate)」と評価されています。

特に、特定のロケールに依存したメッセージ出力をテストの合否判定に使用している場合、期待される文字列が得られずテストが失敗する可能性があります。

以下の表は、JDK 27以降で公式に維持される言語リソースをまとめたものです。

言語名ステータス
英語 (ベース)維持
日本語維持
ドイツ語維持
中国語 (簡体字)維持
その他の言語 (フランス語、イタリア語等)削除 (英語へフォールバック)

自身の環境でどのロケールリソースが有効かを確認するには、以下のようなコードでリソースの取得テストを行うことが推奨されます。

Java
// ロケール設定を確認するサンプルコード
import java.util.Locale;
import java.util.ResourceBundle;

public class LocaleCheck {
    public static void main(String[] args) {
        // フランス語など、メンテナンス対象外のロケールを指定
        Locale locale = Locale.FRANCE;
        try {
            // リソースの取得を試みる (実際には利用するライブラリに依存)
            System.out.println("Current Locale: " + locale.getDisplayName());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
実行結果
Current Locale: français
(メッセージ内容が英語にフォールバックされるようになります)

まとめ

JDK 27で行われる翻訳リソースの削除は、Javaプラットフォームのメンテナンス性を高めるための重要なステップです。

日本語環境においては引き続きフルサポートが継続されるため、一般的な国内開発への直接的な影響は軽微と考えられます。

しかし、グローバルに展開するアプリケーションや、特定の言語メッセージに依存した自動テストを運用している場合は注意が必要です。

詳細は JDK-8381511 を参照し、早期アクセスビルドを用いた検証を進めてください。