Press Release

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

新しいリリースでは、Java言語を改善し、開発プラットフォームのパフォーマンス、安定性、およびセキュリティを強化する12のJDK Enhancement Proposalsを提供

JavaOneが2025年にサンフランシスコ・ベイエリアに復帰

テキサス州オースティン2024年3月21日
Java 22

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

オラクルは本日、世界ナンバーワンのプログラミング言語および開発プラットフォームの最新バージョンである、Java 22 の提供を開始したことを発表しました。 Java 22(Oracle JDK 22)は、パフォーマンス、安定性およびセキュリティ面での数千もの改良により、開発者の生産性をさらに向上させ、組織全体のイノベーションと成長を促進します。これらの改良には、Java言語、そのAPI、パフォーマンス、およびJava Development Kit (JDK)に含まれるツールの強化が含まれます。

オラクルのJava Platform開発担当シニア・バイスプレジデント兼OpenJDK運営委員会の議長であるジョージ・サーブ(Georges Saab)は次のように述べています。「Java 22の新しい機能強化により、より多くの開発者が、機能豊富でスケーラブル、かつセキュアなアプリケーションを迅速かつ容易に構築、提供できるようになるため、世界中の組織はビジネスを拡大しやすくなります。Java 22は、アプリケーション開発を効率化し、あらゆるスキル・レベルの開発者がJavaを利用しやすくなる機能強化を提供します。Java 22は、組織や開発者が、最新かつ広範なアプリケーションやサービスを生み出すための原動力となるでしょう。」

最新のJDKでは、12のJDK Enhancement Proposal(JEPs)によるアップデートと改良が行われています。JDK 21は、OpenJDK Project Amberによる言語の改善(Statements before super[…]、Unnamed Variables & Patterns、String Templates、Implicitly Declared Classes and Instance Main Methods)、Project Panamaによる機能強化(Foreign Function & Memory API and Vector API)、Project Loomに関する機能(Structured Concurrency、Scoped Values)、コア・ライブラリとツールの機能(Class-File API、Launch Multi-File Source-Code Programs、Stream Gatherers)、およびパフォーマンスのアップデート(Region Pinning for G1)を提供します。

IDCのソフトウェア開発担当リサーチ・バイスプレジデントであるArnal Dayaratna氏は、次のように述べています。「30年近く経った現在でも、幅広いユースケースにわたって複雑な開発タスクをサポートできるJavaは、依然として重要なプラットフォームとして位置づけられています。Javaの汎用性と包括的なツールセットは、本番環境向けやミッションクリティカルなアプリケーションの大規模な開発を可能にします。そのため、生成AIのような革新的なユースケースにおいても重要なテクノロジーとなっています。」

Java 22で提供される主要なアップデートは以下の通りです。

 

Project Amberの機能

  • JEP 447: super(...)の前の文(プレビュー): 開発者は、コンストラクタの動作を自由に表現できます。作成されるインスタンスを参照しない文を明示的なコンストラクタ呼出しの前に表示できるようにします。この機能により、補助静的メソッド、補助中間コンストラクタまたはコンストラクタ引数にファクタリングする必要があるロジックのより自然な配置が可能になります。また、コンストラクタがクラスのインスタンス化中に上から下へ順番に実行されるという既存の保証が維持されるため、サブクラス・コンストラクタ内のコードがスーパークラスのインスタンス化を妨げることはありません。また、この機能はJava Virtual Machine (JVM)の変更を必要とせず、JVMの現在の機能のみに依存して、コンストラクタ内の明示的なコンストラクタ呼出しの前に表示されるコードを検証および実行します。
  • JEP 456: 無名変数とパターン: 無名変数とパターンでJava言語を強化することで、開発者の効率を高めます。変数宣言やネストされたパターンが必要であるにもかかわらず、未使用のままになっているような場合に適しています。これにより、エラーの発生が最小限に抑えられ、レコード・パターンの可読性が向上し、コード全体の保守性が向上します。
  • JEP 459: 文字列テンプレート(第2プレビュー): 実行時に計算される値を含む文字列の作成を容易にすることで、Java プログラムの開発を簡素化します。同時に、ユーザー入力値から文字列を作成して外部システムに送信する際のプログラムのセキュリティを強化します。さらには、文字列と式が混在した式の可読性が向上し、中間文字列表現を経由することなく、リテラル文字列と埋め込み式から計算される非文字列値を作成することができます。
  • JEP 463: 暗黙的に宣言されたクラスとインスタンスのメイン・メソッド(第2プレビュー): 大規模なプログラム用に設計された言語機能を理解することなく、学習者が最初のプログラムを記述できるように、Javaプログラミングへのスムーズなオンランプを提供することで、学習を加速させます。この機能により、講師は徐々に概念を導入することができ、学習者は単一クラス・プログラムの合理化された宣言を記述できます。そして習熟度が上がれるにつれて、より高度な機能を簡単にプログラムに組み込むことができます。
 

Project Loomの機能

  • JEP 462: 構造化された並行性 (第2プレビュー): 構造化された並行性のためのAPIを導入することで、開発者がエラー処理と取消を簡素化し、可観測性を強化します。その結果、スレッド・リークや取消の遅延など、取消やシャットダウンにより生じる一般的なリスクを解消するための並行プログラミングのスタイルが促進され、同時実行コードの可観測性が向上します。
  • JEP 464: スコープ値(第2プレビュー): スレッド内およびスレッド間で不変データを共有できるようになります。これにより、開発プロジェクトの使いやすさ、理解しやすさ、堅牢性、パフォーマンスの向上が促進されます。
 

Project Panamaの機能

  • JEP 454: Foreign Function & Memory API: JavaプログラムがJavaランタイム外のコードやデータと相互運用できるよう、APIを導入します。これにより、開発者にとっての使いやすさ、柔軟性、パフォーマンス、安全性が向上します。この新しいAPIにより、Javaプログラムは、Java Native Interfaceを必要とせずに、外部関数(Java Virtual Machine [JVM]外のコード)を効率的に呼び出したり、外部メモリ(JVMによって管理されていないメモリ)にセキュアにアクセスしたりすることで、ネイティブ・ライブラリの呼び出しやネイティブ・データの処理を行うことができます。
  • JEP 460: Vector API(第7インキュベーター): ベクトル計算を表現し、実行時にサポートされているCPUアーキテクチャのベクトル命令に確実にコンパイルするためのAPIを導入します。これにより、開発者は同等のスカラー計算よりも優れたパフォーマンスを実現できます。
 

コア・ライブラリとツールの機能

  • JEP 457: Class-File API (プレビュー): Javaクラス・ファイルの解析、生成、変換のための標準APIを提供することで、開発者の生産性向上を支援します。
  • JEP 458: マルチファイル・ソース・コード・プログラムの起動: Javaアプリケーション起動ツールを拡張し、Javaソースコードのマルチファイルとして提供されるプログラムを実行できるようにします。これにより、開発者はビルド・ツールを構成するかどうか、またいつ構成するかを選択できるようになります。
  • JEP 461: Stream Gatherers (プレビュー): Stream API の機能を拡張してカスタムの中間操作に対応することで、開発者の生産性を向上させます。これにより、ストリーム・パイプラインは、既存の組み込み中間操作では困難だった方法でデータを変換できるようになります。ストリーム・パイプラインの柔軟性と表現力を強化し、カスタム中間操作で無限サイズのストリームを操作できるようにすることで、開発者はJavaコードの読取り、書込み、保守をより効率的に行えるようになります。
 

パフォーマンスのアップデート

  • JEP 423: G1領域の固定: コレクタを一時停止しなければならないようなネイティブ・ライブラリの呼び出し中にガベージ・コレクションを実行できるようにすることで、レイテンシを低減します。この機能は、ネイティブ・ライブラリの呼び出し中にどのオブジェクトをブロックする必要があるかを追跡し、これらのオブジェクトを含む領域だけを「固定」します。これにより、ブロッキングが発生するようなネイティブ・ライブラリの呼び出し中であっても、固定されていない領域でガベージ・コレクションを正常に継続できるようになります。
 

今回のJava 22のリリースは、オラクルと世界中のJava開発者コミュニティの他のメンバーが、OpenJDKとJava Community Process(JCP)を通じて、継続的な協業を行った結果です。新しい機能強化に加えて、Java 22は Java Management Service (JMS)によってもサポートされています。JMSは「 Oracle Cloud Infrastructure (OCI) 」のネイティブ・サービスであり、組織がオンプレミスまたはあらゆるクラウド上でJavaのランタイムとアプリケーションを管理するための統合型のコンソール/ダッシュボードを提供します。Java 22で提供される機能の詳細については、Java 22に関するブログ記事をご覧ください

 

クラウドのイノベーションによりJavaのグローバル・エコシステムをサポート

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

「Oracle Java Universal SE Subscription」は、クラス最高のサポートをお客様に提供する従量制のサービスです。Javaポートフォリオ全体のトリアージ・サポートを含むクラス最高のサポート、「GraalVM」へのアクセス、「Java SE Subscription Enterprise Performance Pack」、「Java Management Service」の先進機能へのアクセス、ビジネスのペースに合わせたアップグレードの柔軟性をお客様に提供します。これにより、IT組織は、複雑性の管理、コストの抑制、セキュリティ・リスクの軽減を図ることができます。

 

JavaOne、2025年に復活

グローバルJavaコミュニティのフラッグシップ・イベントであるJavaOneが、2025年にサンフランシスコのベイエリアで開催されます。2025年3月17日から20日まで、カリフォルニア州レッドウッド・ショアーズで開催されるJavaOne 2025では、参加者は最新のJava開発について話を聞いたり、オラクルのJavaエキスパートや業界の著名人と交流したりすることができます。詳細は Inside Javaのブログ記事をご覧ください。

賛同コメント

Türkiye Java Community (TJC)のコミュニティ・リーダーであるEvren Tan氏は、次のように述べています。「オラクルの一貫した支援により、TJC の動的なエコシステムの中で大きな勢いを得ることができました。Java 22のリリースに伴い、当コミュニティは開発者の効率をさらに向上させる最新機能の数々を取り入れています。これは、トルコにおけるJavaテクノロジーの発展につながるものと考えています。私たちは、世界中のJava開発者にTJC活動への参加を呼びかけ、包括的なコミュニティ精神によってJavaコミュニティに活気や活力を与えたいと考えています。」

xHubの創設者兼CIOであるBadr El Hourari氏は次のように述べています。「プログラミング言語、プラットフォーム、開発者コミュニティとしてのJavaの人気は、モロッコやアフリカ地域で高まり続けています。Java 22では、例えばJEP 463のような、新しい開発者がJavaをより簡単に利用できるようにするイノベーションにオラクルのJavaチームが注力しているようなので、とても楽しみです。言語を簡素化することで、まったく新しい世代のプログラマーが容易にJavaに参入できるようになります。また、私たちは、モロッコで毎年恒例のDevoxx Moroccoカンファレンスにおいて、Javaの重要性を強調し続けています。このイベントでは、世界中のJavaコミュニティの中でも最も大きな影響力を持つリーダーから話を聞くことができます。多くの開発者の方が、今年のイベントに参加されますことを期待しています。」

JetBrainsのJava開発支援責任者であるMala Gupta 氏は、次のように述べています。「Java 22にはさまざまな機能がバンドルされており、学生からベテラン開発者まで、また探求心旺盛なJavaファンからパフォーマンスと安定性を求める組織まで、すべての人が楽しめるようになっていることに驚かされます。Javaは、インスタンスのメイン・メソッドや暗黙的なクラスなど、コードの最初のステップを書く際の形式的な手順を減らすというミニマリスト的なアプローチを採用しています。これにより、Javaを学び始めることが、以前より容易になっています。コンストラクタの改良(super[...]の前の文)は、Javaの責任あるイノベーションへのコミットメントを示しています。既存のコードが壊されることなく、バージョン1.0から存在する言語制約が緩和されたのを見て、とてもワクワクしました。IntelliJ IDEA 2024.1は、Java 22の機能をサポートしており、Java開発者が簡単に使用できるようになっています。」

オラクルのエンタープライズ・クラウド・ネイティブJavaエンジニアリング担当バイスプレジデントのトム・スナイダーは次のように述べています。「Helidonチームは、仮想スレッドの発表後すぐにその価値を実感しました。Helidon 4では、Helidon Webサーバーを書き換えて仮想スレッドをネイティブに使用するようにした結果、パフォーマンスが大幅に向上し、開発者の生産性が向上しました。現在Java 22では、仮想スレッドのパフォーマンスがさらに向上しています。これらの大幅な改善はすべてのHelidonユーザーにメリットをもたらすでしょう。」

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

  • Dev.java: Javaを学ぶための公式ポータル
  • Inside.java: オラクルのJavaチームメンバーからのニュースや意見
  • Java YouTube: Javaの学習動画を配信するJava公式YouTubeチャンネル
 

その他のリソース

【本件に関するお問い合わせ先】

オラクルについて

オラクルは、広範かつ統合されたアプリケーション群に加え、セキュリティを備えた自律型のインフラストラクチャをOracle Cloudとして提供しています。オラクル(NYSE:ORCL)に関するより詳細な情報については、www.oracle.com をご覧ください。

商標

Oracle、Java、MySQL及びNetSuiteは、Oracle Corporation、その子会社及び関連会社の米国及びその他の国における登録商標です。NetSuiteは、クラウド・コンピューティングの新時代を切り開いたクラウド・カンパニーです。