LTSリリースの「Java 17」が公開

 米Oracleは9月14日(米国時間)、「Java 17」およびオープンソースのリファレンス実装の「JDK 17」の一般公開(GA)を発表した。2029年9月までサポートされる長期サポート版(LTS)となる。

 Javaは6ヶ月のリリースサイクルを持ち、Java 17は、3月に一般公開(GA)となったJava 16に続く最新版。LTSとしては、2018年に公開されたJava 11以来となる。

 

合計で14件のJEP(JDK Enhancement Proposals)が加わった。新しいプラットフォームサポートとして、Arm 64ベースのApple Siliconを搭載したコンピュータでJavaアプリケーションをネイティブで動かすためのポート、macOS AArch64 Portが加わった(JEP 391)。合わせて、ライブラリ側で、Apple Metal APIを使ったmacOS向けJava 2Dパイプラインの実装が加わった(JEP 382)。非推奨となったApple OpenGL APIへの依存を削減するという。

 言語では、Sealedクラスとインターフェイスが正式に加わった(JEP 409)。SealdクラスはJDK 15でプレビューとして加わったもので、他のクラスやインターフェイスの継承を制限するもの。開発者の生産性改善を図るProject Amber由来の機能。ライブラリでは、擬似乱数を強化し、新しいインターフェイス型と実装を提供するようになった(JEP 356)。異なる擬似乱数の相互運用性を強化できるとしている。

 Applet APIが、削除に向けた非推奨となった(JEP 398)。主要なWebブラウザはJavaブラウザプラグインのサポートを削除していることから、すでに2017年公開のJava 16で非推奨となっていた。実験的なAOT(Ahead-of-Time)とJIT(Just-in-Time)コンパイラが、受け入れが進まなかったことを理由に削除となった(JEP 410)。すでにJDK 16では削除され、オプション扱いになっていた。セキュリティ関連では、JDKインターナルのカプセル化が加わった(JEP 403)。これにより、JDK 9以来可能だった、単一のコマンドラインオプションでのインターナル要素のカプセル化の緩和ができなくなった。

 このほかにも、多数の機能強化が加わっている。なお、Oracleによると、Java開発者コミュニティ、JCP(Java Community Process)とLTSのリリースサイクルについて、現在の3年から2年に短縮することを協議中とのこと。Oracleはここで、次のLTSを2023年9月公開予定の「Java 21」にすることを提案しているという。

Java
https://www.oracle.com/java/
OpenJDK
https://openjdk.java.net