第3章 非推奨で、サポートされていない OpenJDK の機能

OpenJDK のアップストリームプロジェクトでは、コミュニティーの関心が低く、代替ソリューションが改善されたため、一部のテクノロジーへのサポートが削除されました。

OpenJDK 17 をインストールする前に、以下の非推奨およびサポートされていない機能を確認してください。

アプレットの API

OpenJDK 17 では、一般的な Web ブラウザーでは Applet API の Java プラグインに対応していないため、Applet API が非推奨になりました。OpenJDK 17 では、Applet API に関連するクラスおよび API 要素も非推奨になりました。

非推奨のアプレットAPI の詳細は、「JEP 398 - Applet API for Removal の非推奨」を参照してください。

同時マークアンドスイープ (CMS) ガーベジコレクター (GC)

OpenJDK 17 では、CMS GC のサポートが削除されました。CMS は、以前のリリースの OpenJDK で非推奨になりました。

CMS ガルーンの削除の詳細は、「JEP 363 - CMS (Concurrent Mark Sweep) ガベージコレクターの削除」を参照してください。

バイアスされたロックの非推奨と無効化

OpenJDK 17 では、ロックとそのコマンドラインオプションについて、バイアスがかかっていました。

非推奨のバイアスロック機能の詳細は、JEP 374: バイアスロックの非推奨および無効化 を参照してください。

Graal JIT コンパイラーおよび Java AOT コンパイラー

OpenJDK 17 では、Graal just-in-time (JIT) コンパイラーが削除されたため、以下のモジュールが OpenJDK 17 から削除されました。

  • jaotc
  • jdk.aot
  • jdk.internal.vm.compiler
  • jdk.internal.vm.compiler.management

GrallVM は、AOT (ahead-of-time) コンパイルタスクに引き続き使用できます。Mandrel は、GraalVM、OpenJDK、および RHEL の機能を統合するために使用できます。

また、OpenJDK 17 は、jaotc ツールとしても知られている Java a ahead-of-time (AOT) コンパイラーを削除します。

外部に構築されたバージョンのコンパイラーに関連する JIT コンパイラータスクには、試験的な Java レベルの JVMCI コンパイラーインターフェース (JVMCI) を引き続き使用できます。

AOT コンパイラーおよび JIT コンパイラーの削除に関する詳細は、JEP 410: Experimental AOT および JIT コンパイラーを削除 を参照してください。

PACK200 ツールおよび API

OpenJDK 17 では、PACK200 ツールおよび PACK200 API のサポートが削除されました。両方の API は、以前の OpenJDK リリースで非推奨となりました。

削除された PACK200 ツールは以下のとおりです。

  • pack200
  • unpack200

削除された PACK200 API は以下のとおりです。

  • java.util.jar.Pack200
  • java.util.jar.Pack200.Packer
  • java.util.jar.Pack200.Unpacker

このようなツールや API は、技術的なダウンロード速度が向上し、Pack200 プラグインに対するブラウザーのサポートが減ったため、削除されました。

OpenJDK 互換のアプリケーションの場合は、jlink ツールまたは jパッケージ ツールを使用して、アプリケーションの JAR を縮小できます。

PACK200 ツールおよび API の削除の詳細は、「JEP 367: Pack200 ツールおよび API の削除」を参照してください。

jlink ツールの詳細は、『OpenJDK 11 jlink を使用した Java ランタイム環境のカスタマイズガイド』を参照してください。

Parallel Scavenge アルゴリズムおよび Serial Old GC アルゴリズム

OpenJDK 17 では、Parallel Scavenge アルゴリズムと Serial Old Garbage Collector (GC) アルゴリズムの組み合わせが非推奨になりました。

この GC アルゴリズムの組み合わせの詳細は、「JEP 366: Deprecate the ParallelScavenge + SerialOld GC Combination」を参照してください。

Nashorn JavaScript エンジン

OpenJDK 17 では、Nashorn JavaScript Engine、その API、および jjs ツールへの対応が解除されました。

Nashorn JavaScript Engine の削除の詳細は、JEP 372: Remove the Nashorn JavaScript Engine を参照してください。

Remote Method Invocation (RMI)

OpenJDK 17 では、(RMI) のアクティベーションメカニズムおよびその java.rmi.activation API パッケージが削除されました。OpenJDK 17 では、その他の RMI 機能を引き続き使用できます。

RMI アクティベーションメカニズムの削除の詳細は、「JEP 407: Remove RMI Activation」を参照してください。

セキュリティー管理者

OpenJDK 17 では、コミュニティーの関心が低かったため、クラスとそのメソッドを含む Security Manager 機能が非推奨になりました。

セキュリティーマネージャーの非推奨に関する詳細は、「JEP 411: Deprecate the Security Manager for Removal」を参照してください。

Solaris ポートおよび SPARC ポート

OpenJDK 17 では、ソースコードが削除され、Solaris/SPARC ポート、Solaris/x64 ポート、および Linux/SPARC ポートがサポートされるようになりました。

Solaris ポートおよび SPARC ポートの削除の詳細は、「JEP 381: Remove the Solaris and SPARC Ports」を参照してください。

値ベースのクラス警告

OpenJDK 17 では、プリミティブラッパークラスを値ベースとして指定し、そのコンストラクターは非推奨になりました。これにより、Java プラットフォームで値ベースのクラスの同期が間違って試行されることを示す新しい非推奨の警告が作成されます。

値ベースのクラスの警告の詳細は、JEP 390: Warnings for Value-Based Classes を参照してください。