オラクル、Java 24をリリース

新リリースではJava言語の改善により開発者の生産性を向上させる24のJDK Enhancement Proposalsを提供

日本オラクル株式会社

テキサス州オースティン - 2025年3月19日

(本資料は米国2025年3 月18日にオラクル・コーポレーションより発表されたプレスリリースの抄訳です )

オラクルは本日、世界ナンバーワンのプログラミング言語および開発プラットフォームの最新バージョンである、Java 24の提供を開始したことを発表しました。Java 24 (Oracle JDK 24) は、開発者の生産性を最大限に高め、イノベーションを推進する数千もの改善を提供し、プラットフォームのパフォーマンス、安定性、セキュリティの強化を通じて組織のビジネス成長を加速します。2025年3月18日~20日にカリフォルニア州レッドウッドショアズで開催されるJavaOne 2025カンファレンスでは、最新のJava 24リリースについてご紹介します。

IDCのソフトウェア開発担当リサーチ・バイスプレジデントであるArnal Dayaratna氏は、次のように述べています。「Javaは今年後半に30周年を迎えようとしていますが、開発者のニーズは常に変化し続けています。AI搭載アプリケーションの開発をサポートする機能など、進化するニーズに対応するために、Javaはツールセットを拡大し続けています。新リリースの幅広い機能は、開発者の生産性向上に大きく貢献し、機能性に富んだアプリケーションの迅速かつ効率的な開発と提供を支援します。Java 24リリースは、エンタープライズクラスのミッションクリティカルなアプリケーションの大規模な開発において、Javaが卓越した選択肢であることを示しています。」

Oracle Java Platform担当シニア・バイスプレジデントでOpenJDK運営委員会の議長であるジョージ・サーブ(Georges Saab)は次のように述べています。「Javaは過去30年にわたり、開発者に対して多様なユースケースに対応するアプリケーションを構築し、展開するための包括的なプラットフォームを提供してきました。Java 24リリースでは、新しいAI機能やポスト量子暗号機能など、幅広い分野で20以上の新機能が導入されており、開発者はこれらのツールを活用して革新的なAI搭載アプリケーションを構築できます。オラクルはJavaの管理者として世界中のJavaコミュニティと協力し、これまで通り半年サイクルで新機能を継続的に提供していきます。」

言語機能

  • JEP 488: プリミティブ型のパターン、instanceof、switch (第2プレビュー): 言語をより一貫性のある表現力豊かなものにすることで、Javaプログラミングの生産性を向上させます。この機能により、開発者がパターン・マッチング、instanceof、switchを使用する際に遭遇するプリミティブ型に関する制約が取り除かれ、パターン・マッチングの強化が図られます。また、すべてのパターン・コンテキストでプリミティブ型のパターンが使用可能になり、すべてのプリミティブ型でinstanceofとswitchが使用可能になります。AI推論をアプリケーションに統合する開発者にとって、プリミティブ型のサポートは大きなメリットとなります。

  • JEP 492: 柔軟なコンストラクタ本体 (第3プレビュー): コンストラクタ本体に導入された2つの明確なプロローグとエピローグのフェーズにより、開発者はコードの信頼性を向上させることができます。これにより、現在は補助静的メソッド、補助中間コンストラクタ、またはコンストラクタ引数に分解しなければならないロジックを、より自然な形で配置できるようになります。さらに、サブクラスのコンストラクタ内のコードがスーパークラスのインスタンス化に影響を与えないというセーフガードが維持されるため、メソッドがオーバーライドされた際のクラスの信頼性が向上します。

  • JEP 494: モジュール・インポート宣言 (第2プレビュー): インポート・コードをモジュール自体に配置する必要がないため、モジュールがエクスポートしたすべてのパッケージを迅速かつ簡単にインポートできるようになり、開発者の生産性が向上します。これにより、すべての開発者にとってモジュール・ライブラリの再利用が簡素化され、初心者でもパッケージ階層内の位置を学習することなく、サードパーティ・ライブラリや基本的なJavaクラスをより簡単に使用できるようになります。この機能は、ネイティブAI推論、ライブラリ、またはサービス呼び出しをビジネス・ロジックと迅速に統合したい開発者にとってもメリットがあります。

  • JEP 495: シンプルなソースファイルとインスタンスのmainメソッド (第4プレビュー): 学生が、大規模なプログラム向けの言語機能を理解する必要なく、スムーズにJavaプログラミングを始め、最初のプログラムを作成できるよう支援します。その結果、講師やインストラクターは概念を徐々に導入できるようになります。また、学生は単一クラス・プログラム用の簡素化された宣言を記述し、スキルが向上するにつれてより高度な機能を使用してプログラムをシームレスに拡張できるようになります。一方、経験豊富なJava開発者は、大規模プロジェクト用のツールを使用することなく、簡潔かつ効率的に小規模なプログラムを記述することができます。

ライブラリ

  • JEP 485: Stream Gatherers (第2プレビュー): Stream APIの機能を拡張してカスタムの中間操作に対応することで、開発者によるJavaコードの読み書きやメンテナンスの効率化を支援します。これにより、ストリーム・パイプラインは、既存の組み込み中間操作では困難だった方法でデータを変換できるようになります。

  • JEP 484: Class-File API: Javaクラス・ファイルの解析、生成、変換のための標準APIを提供し、Java仮想マシン仕様で定義されたクラス・ファイル形式の追跡を行うことで、開発者の生産性向上を支援します。

  • JEP 487: スコープ値 (第4プレビュー): スレッド内およびスレッド間で不変データの共有を可能にすることで、開発者はプロジェクトの使いやすさ、理解しやすさ、パフォーマンス、堅牢性を向上させることができます。

  • JEP 489: Vector API (第9インキュベーター): ベクトル計算を表現し、実行時にサポートされているCPUアーキテクチャのベクトル命令に確実にコンパイルするためのAPIを導入することで、開発者の生産性向上を支援します。これにより、開発者はAI推論や計算シナリオでよく使用される同等のスカラー計算よりも優れたパフォーマンスを実現できます。

  • JEP 499: 構造化された並行性 (第4プレビュー): 構造化された並行性のための新しいAPIにより並行プログラミングを簡素化することで、マルチスレッド・コードの保守性、信頼性、および可視性を向上させます。構造化された並行性は、異なるスレッドで実行されている関連タスクのグループを単一の作業単位として扱うことで、スレッド・リークや取消遅延など、取消や停止に起因する一般的なリスクを軽減します。

セキュリティ・ライブラリ

  • JEP 478: キー導出関数API (プレビュー): 開発者は、転送中のデータに暗号化セキュリティを適用することで、新たな量子コンピューティング環境に備えることができます。これにより、データの機密性と通信の安全性が向上します。

  • JEP 496: 量子耐性のあるモジュールlatticeベースのキー・カプセル化メカニズム: 量子耐性のあるモジュールlatticeベースのキー・カプセル化メカニズム(ML-KEM)の実装を通じてJavaアプリケーションのセキュリティを強化します。キー・カプセル化メカニズムは、公開キー暗号を使用して安全ではない通信チャネル上で対称キーを保護するために使用されます。この機能は、ポスト量子時代への対応に向けた重要なステップであり、最終的にはJavaプラットフォームにポスト量子暗号(PQC)サポートを提供することになります。

  • JEP 497: 量子耐性のあるモジュールlatticeベースのデジタル署名アルゴリズム: 量子耐性のあるモジュールlatticeベースのデジタル署名アルゴリズム(ML-DSA)の実装を通じてJavaアプリケーションのセキュリティを強化します。JEP 496と同様に、この機能は、ポスト量子時代への対応に向けた重要なステップであり、最終的にはJavaプラットフォームにポスト量子暗号(PQC)サポートを提供することになります。デジタル署名は、データの不正な変更の検出や署名者の身元認証に使用されます。ML-DSAは、将来的な量子コンピューター攻撃に対するセキュリティを確保するように設計されており、米国標準技術局(NIST)によって標準化(FIPS 204)されています。

ツール

  • JEP 493: JMODなしのランタイム・イメージのリンク: jlinkツールが、JDKのJMODファイルを使用せずにカスタム・ランタイム・イメージを作成できるようにすることで、開発者の作業効率を向上させます。これにより、JDKのサイズを約25%削減できます。その結果、開発者は、モジュールがスタンドアロンJMODファイル、モジュールJARファイル、または以前にリンクされたランタイム・イメージの一部であるかどうかに関係なく、そのモジュールからランタイム・イメージをリンクできます。この機能は、デフォルトでは有効ではないため、JDKのビルド時に有効にする必要があります(JDKベンダーによっては有効にしないことを選択する場合があります)。

パフォーマンスおよびランタイムに関する更新

  • JEP 450: コンパクトなオブジェクト・ヘッダー (試験段階): HotSpot JVMのオブジェクト・ヘッダーのサイズを、64ビットアーキテクチャ上で96ビット~128ビットから64ビットに縮小することで、開発者の生産性を向上させます。これにより、ヒープサイズを縮小し、デプロイ密度を向上させ、データ・ローカリティを高めることができます。

  • JEP 475: G1の遅延バリア機能の拡張: G1ガベージ・コレクターのバリア処理をC2 JITのコンパイル・パイプラインの初期段階ではなく、プラットフォーム非依存最適化やレジスタ割り当ての後に実行することで、オーバーヘッドを減らし、開発者の効率性を向上させます。この機能は、G1ガベージ・コレクターのバリアの実装を簡素化することで、C2によって生成されたコードの効率性、理解しやすさ、回復性、品質を向上させます。

  • JEP 483: 事前クラス・ローディングおよびリンク: HotSpot Java仮想マシンが起動した際に、アプリケーションのクラスをロードおよびリンク済みの状態で即座に利用できるようにすることで、開発者の生産性を向上させ、起動にかかる時間を短縮します。この機能は、jlinkまたはjpackageツールの使用を必要とせず、コマンドラインからアプリケーションを起動する方法や、アプリケーション、ライブラリ、フレームワークのコードに変更を加える必要もありません。その結果、起動時間やウォームアップ時間のさらなる改善のための基盤を築くのに役立ちます。

  • JEP 490: ZGC: 非世代別モードの削除: Z Garbage Collector (ZGC) の非世代別モードを削除することで、2つの異なるモードをサポートする必要がなくなり、メンテナンスコストを削減できます。

  • JEP 491: ピン留めなしで仮想スレッドを同期: 同期メソッドやステートメントを使用するJavaコードやライブラリのスケーラビリティを拡張することで、開発者の生産性を向上させます。仮想スレッドがその元となるプラットフォーム・スレッドを解放できるようにすることで、開発者はより多くの仮想スレッドにアクセスし、アプリケーションのワークロードを効率的に管理できるようになります。

ソース・コード

  • JEP 404: 世代別Shenandoah (試験段階): Shenandoah ガベージ・コレクターを世代別コレクション機能(試験段階)で強化することで、持続的なスループット、負荷スパイク耐性、およびメモリ利用率を向上させ、開発者の生産性向上を支援します。

  • JEP 479: Windows 32ビットx86ポートの削除: Windows 32ビットx86 ポート用のソース・コードとビルドサポートを削除することで、JDKのビルドとテストのインフラストラクチャを簡素化し、開発者の効率向上を支援します。

  • JEP 501: 32ビットx86ポートの非推奨と削除: 32ビットx86ポートを非推奨とし、将来のリリースで削除することで、開発者の生産性を向上させます。これにより、開発者は32ビットx86のフォールバックを実装することなく、プラットフォーム固有のサポートを必要とする新機能にアクセスできるようになります。

さらに、オラクルは、安全性の高い最新機能を導入する一方で、安全性の低い機能を段階的に非推奨化および削除しています。Javaの健全性を維持し、ソフトウェア開発のベスト・プラクティスへの準拠を確実なものにしています。将来のJavaリリースにおいて、JEP 472(JNIの使用を制限する準備)、JEP 486(セキュリティ・マネージャーの完全な無効化)、JEP 498(sun.misc.Unsafeのメモリ・アクセス・メソッドの使用時の警告)の3つの機能を削除する予定です。

今回のJava 24のリリースは、オラクルと世界中のJava開発者コミュニティが、OpenJDKとJava Community Process(JCP)を通じて継続的な協業を行った結果です。

クラウド・イノベーションによりJavaのグローバル・コミュニティをサポート

Oracle Cloud Infrastructure (OCI) は、Java 24をサポートする最初のハイパースケール・クラウドの1つです。JavaをOCIに導入することで、イノベーション、パフォーマンス、効率性、コスト削減効果が向上します。「Oracle Java SE」、「Oracle GraalVM」、「Java SE Subscription Enterprise Performance Pack」は、OCI上で追加の費用を支払うことなく利用できるため、開発者は、より速く、より優れた、圧倒的なコスト・パフォーマンスで動作するアプリケーションをJava 24で構築し、デプロイすることが可能です。

「Oracle Java Universal SE Subscription」は、クラス最高のサポートをお客様に提供します。「Java SE Subscription Enterprise Performance Pack」、Javaポートフォリオ全体を対象としたトリアージ・サポート、「Oracle GraalVM」の使用権、「Java Management Service」の高度な機能へのアクセス、お客様のビジネスのペースに合わせた柔軟なアップグレードを提供します。これにより、IT部門は、複雑性を管理しながらコストを削減し、セキュリティ・リスクを軽減できます。

賛同コメント

NYJavaSIGの議長であるFrank Greco氏は次のように述べています。「Java 24におけるJava Vector APIのさらなる改良により、予測AIおよび生成AIアプリケーションがさらに強化されることを期待しています。効率的なAIアルゴリズムをJava内で直接利用可能にすることで、AIアプリケーションがさまざまな最新ハードウェア・プラットフォームで高い効率性と拡張性を確保できるようになるでしょう。」

XDEV Software GmbHのCEO、Richard Fichtner氏は次のように述べています。「Java 24では、Stream Gatherersという強力な拡張機能が導入され、開発者はストリーム内の要素のグループ化や処理方法をきめ細かく制御できるようになります。これにより、複雑なデータ変換がより表現力豊かに、効率的に行えるようになります。この機能は、カスタム・コレクターやflatMapジムナスティクスのような回避策を排除し、より読みやすく保守しやすいストリーム・パイプラインを実現できるので、特に気に入っています。」

Agile Developer, Incの創設者、Venkat Subramaniam博士は次のように述べています。「Javaは、例えるなら一流シェフが厳選した素材をじっくりと煮込んで最高の風味を引き出したソースのようなものです。現在私が気に入っている機能は、Stream Gatherers API、スコープ値、構造化された並行性です。」

CodeRanchの開発者であるJeanne Boyarsky氏は次のように述べています。「Java 24の柔軟なコンストラクタの第3プレビューは注目すべき機能です。privateのヘルパーメソッドを作成する必要がなくなるため非常に便利で、this/superへの呼び出しが1行で済むようになります。Stream Gatherers機能も興味深いものであり、今後、多くの新しい中間操作を呼び出すためのライブラリが登場することを楽しみにしています。」

JetBrainsのJava開発者アドボケイトであるMarit van Dijk氏は次のように述べています。「JetBrainsでは、IntelliJ IDEAで初日からJava 24をサポートできることを嬉しく思います。私たちは、最新のJavaの機能強化に常に対応し続けることで、開発者が新機能を簡単に導入できるようにしています。また、IDE内で直接Java 24をダウンロードできるため、セットアップも容易です。」

Javaとそのグローバル・エコシステムの詳細については、以下をご参照ください。

  • Dev.java: Javaを学ぶための公式ポータル

  • Inside.java: オラクルのJavaチームメンバーからのニュースや意見

  • Java YouTube: Javaの学習動画を配信するJava公式YouTubeチャンネル

参考リンク

オラクルについて

オラクルは、統合されたアプリケーション・スイートを提供している他、Oracle Cloudにおいてセキュリティを備えた自律型のインフラストラクチャを提供しています。オラクル(NYSE: ORCL)について詳しくは、https://www.oracle.com/ をご覧ください。


会社概要

日本オラクル株式会社

28フォロワー

RSS
URL
https://www.oracle.com/jp/index.html
業種
情報通信
本社所在地
東京都港区北青山2-5-8 オラクル青山センター
電話番号
03-6834-6666
代表者名
三澤 智光
上場
東証スタンダード
資本金
250億3300万円
設立
1985年10月