Oracle JDK 9の新機能
リリース9
E90929-01(原本部品番号:E77563-05)
2017年9月
Java Platform, Standard Edition 9はメジャー機能リリースです。ここでは、Java SE 9およびJDK 9の機能および拡張機能、ならびにOracleのJava SE 9の実装について説明します。
JDK Enhancement Proposal (JEP)は、JDKに対する重要な変更を設計および実装するための提案です。JEP 1: JDKの拡張機能の提案およびロードマップ・プロセスを参照してください。Java Specification Request (JSR)は、Javaプラットフォームに対して提案された仕様または最終的な仕様の記述です。JSRの概要を参照してください。
次の変更は、複数のテクノロジ領域に影響を及ぼします。
機能 | 説明 |
---|---|
Java Platform Module System | コードとデータの名前付き、自己記述型のコレクションである、新しい種類のJavaプログラミング・コンポーネント(モジュール)を導入します。このモジュール・システムの機能は次のとおりです。
JDK自体は一連のモジュールに分割されています。この変更の特徴は次のとおりです。
詳細は、次を参照してください。 |
JEP 223: 新しいバージョン文字列スキーム | メジャー、マイナー、セキュリティおよびパッチの更新リリースを明確に区別できる、簡素化されたバージョン文字列の書式を提供します。 新しいバージョン文字列の書式は次のとおりです。 $MAJOR.$MINOR.$SECURITY.$PATCH
Java Platform, Standard Editionインストレーション・ガイドの新しいバージョン文字列の書式を参照してください。 |
JDK 9には、Microsoft WindowsおよびmacOSプラットフォーム向けのインストーラの拡張機能が含まれています。
Microsoft Windows向けのインストーラの拡張機能
機能 | 説明 |
---|---|
インストーラのUIによるWebデプロイメントの有効化または無効化 |
インストーラの「ようこそ」ページに、Webデプロイメントを有効または無効にするオプションが用意されています。Webデプロイメントを有効にするには、「ようこそ」ページで「カスタム・セットアップ」を選択し、「インストール」をクリックし、「ブラウザでJavaコンテンツを有効にする」チェック・ボックスを選択します。 |
macOS向けのインストーラの拡張機能
機能 | 説明 |
---|---|
CPUバージョンの可用性 |
現在のCPUバージョンをアンインストールした後、次のCPUの可用性についての通知が提供されます。 |
ユーザーの操作性 |
JREの更新時におけるユーザーの操作性が向上します。 |
JDK 9のツールの拡張機能を次に示します。
機能 | 説明 |
---|---|
JEP 222: jshell: Javaシェル(Read-Eval-Print Loop) | JavaプラットフォームにRead-Eval-Print Loop (REPL)機能を追加します。
Java Platform, Standard Editionツール・リファレンスの JShell APIを使用すると、アプリケーションでREPL機能を活用できるようになります。jdk.jshellパッケージを参照してください。 |
JEP 228: 診断コマンドの追加 | 追加の診断コマンドを定義して、HotspotおよびJDKの問題を診断する機能を強化します。 Java Platform, Standard Editionツール・リファレンスの |
JEP 231: 起動時のJREバージョン選択の削除 | 起動時に、起動しているJREと異なるJREのバージョンを要求する機能を削除します。 今日のアプリケーションは通常、ネイティブOSパッケージング・システムであるJava Web Start (JNLPファイルを使用)または有効なインストーラからデプロイされます。これらのテクノロジでは独自の方法でJREが管理され、必要なJREの検索やダウンロード、更新が随時行われます。このため、起動時のJREバージョン選択は使用されなくなっています。 |
JEP 238: マルチリリースJARファイル | JARファイル形式を拡張して、Javaリリース固有の複数のバージョンのクラス・ファイルが1つのアーカイブに共存できるようにします。 マルチリリースJAR (MRJAR)には、特定のJavaプラットフォーム・リリースに固有のクラスとリソースのためにバージョニングされた追加のディレクトリが含まれます。バージョニングされたディレクトリは、 |
JEP 240: JVM TI hprofエージェントの削除 |
注意:
|
JEP 241: jhatツールの削除 |
|
JEP 245: JVMコマンドライン・フラグの引数の検証 | すべての数値JVMコマンドライン・フラグに対する引数を検証して失敗を回避し、引数が無効であることが判明した場合は、かわりに適切なエラー・メッセージを表示します。 ユーザー指定の数値を必要とする引数のために、範囲およびオプションの制約のチェックが実装されています。 Java Platform, Standard Editionツール・リファレンスの |
JEP 247: 旧プラットフォーム・バージョンでのコンパイル | Javaプログラムをコンパイルして、選択した以前のバージョンのプラットフォームで実行できるように、
Java Platform, Standard Editionツール・リファレンスの |
JEP 282: jlink: Javaリンカー | 一連のモジュールとそれらの依存関係を、JEP 220で定義されたカスタム・ランタイム・イメージとして、アセンブルして最適化します。
Java Platform, Standard Editionツール・リファレンスの |
JDK 9のセキュリティの拡張機能を次に示します。
機能 | 説明 |
---|---|
JEP 219: Datagram Transport Layer Security (DTLS) | Java Secure Socket Extension (JSSE) APIおよびSunJSSEセキュリティ・プロバイダがDTLSバージョン1.0およびDTLSバージョン1.2プロトコルをサポートできるようにします。 Java Platform, Standard Editionセキュリティ開発者ガイドのDatagram Transport Layer Security (DTLS)を参照してください。 |
トランスポート・レイヤー・セキュリティ(TLS)接続で使用するアプリケーション・プロトコルについて、クライアントとサーバーがネゴシエートできるようにします。Application-Layer Protocol Negotiation (ALPN)では、クライアントはサポートされているアプリケーション・プロトコルのリストをTLS ClientHelloメッセージの一部として送信します。サーバーはプロトコルを選択し、選択したプロトコルをTLS ServerHelloメッセージの一部として返します。アプリケーション・プロトコル・ネゴシエーションは、追加のネットワーク・ラウンドトリップなしで、TLSハンドシェイク内で行うことができます。 Java Platform, Standard Editionセキュリティ開発者ガイドのTLSハンドシェイクとApplication Layer Protocol Negotiationを参照してください。 |
|
JEP 249: TLSにおけるOCSP Stapling | TLS接続でサーバーがX.509証明書の失効をチェックできるようにします。サーバーは、問題の証明書についてOnline Certificate Status Protocol (OCSP)の応答側に問い合せることで、TLSハンドシェイク時にこれを行います。サーバーは、クライアントに返す証明書に失効情報を付加(つまり、「ステープリング」)し、クライアントが適切なアクションをとれるようにします。 クライアントは、TLSサーバーに対してOCSP staplingを要求できます。クライアントは、この機能をサポートするサーバーからのステープリング済の応答をチェックします。 Java Platform, Standard Editionセキュリティ開発者ガイドのOCSP Staplingを参照してください。 |
JEP 246: GHASHとRSAにCPU命令を利用 |
GHASH HotSpot組込みを使用して、 RSA HotSpot組込みを使用して、 特定のアルゴリズムのパフォーマンスを大幅に改善するプロバイダを構成できるよう、新しいセキュリティ・プロパティ Java Platform, Standard Editionセキュリティ開発者ガイドの特定のアルゴリズムに対する優先プロバイダの構成を参照してください。 |
JEP 273: DRBGベースのSecureRandom実装 |
DRBGメカニズムは、強度がSHA-512やAES-256と同等の最新のアルゴリズムを使用します。これらのメカニズムは、ユーザー要件にあわせて様々なセキュリティ強度および機能を使用して構成できます。 Java Platform, Standard Editionセキュリティ開発者ガイドの乱数の生成を参照してください。 |
JEP 288: SHA-1証明書の無効化 | より柔軟なメカニズムを提供して、SHA-1ベースの署名を使用するX.509証明書チェーンを無効にすることで、JDKのセキュリティ構成を改善します。 デフォルトでJDKに含まれる、ルートをアンカーとするTLSサーバー証明書チェーン内でSHA-1を無効にします。ローカルまたはエンタープライズ認証局(CA)は影響を受けません。
JEP 288を参照してください。 |
JEP 229: デフォルトでPKCS12キーストアを作成 | デフォルトのキーストア・タイプをJKSからPKCS12に変更します。PKCS#12は、暗号鍵を格納するための、拡張性のある標準的な幅広くサポートされている形式です。PKCS12キーストアは、秘密鍵、信頼できる公開鍵証明書、および秘密鍵を格納することで、機密性を高めます。また、この機能は、PKCS12をサポートするMozilla、Microsoft Internet Explorer、OpenSSLなど、他のシステムとの相互運用性の機会を開きます。 SunJSSEプロバイダは、PKCS12ファイルの読取りおよび書込みのためのPKCS12 Java Platform, Standard Editionセキュリティ開発者ガイドの鍵管理を参照してください。 PKCS12キーストアは、鍵と証明書を管理するユーティリティである Java Platform, Standard Editionセキュリティ開発者ガイドのキーストアの作成、およびJava Platform, Standard Editionツール・リファレンスの |
JEP 287: SHA-3ハッシュ・アルゴリズム | NIST FIPS 202に記載されているSHA-3暗号化ハッシュ機能をサポートします。
次のプロバイダは、SHA-3アルゴリズムの拡張機能をサポートしています。
|
JDK 9のデプロイメントの拡張機能を次に示します。
機能 | 説明 |
---|---|
Javaプラグインの非推奨化 | OracleのJDK 9ビルドでは、Javaプラグインおよび関連アプレット・テクノロジが非推奨となります。これらのテクノロジは引き続きJDK 9で使用できますが、今後のリリースでは、Oracle JDKおよびJREからの削除対象とみなされます。 Webページに埋め込まれたアプレットおよびJavaFXアプリケーションを実行するにはJavaプラグインが必要です。これらのタイプのアプリケーションについては、Java Web Startまたは自己完結型のアプリケーションとして記述しなおすことを検討してください。 Java Platform, Standard Editionデプロイメント・ガイドのJava Web StartおよびJNLPへのJavaアプレットの移行および自己完結型アプリケーションのパッケージ化を参照してください。 |
Javaコントロール・パネルの強化 | Javaコントロール・パネル内のオプションのグループ化と表示を改善します。情報が見つけやすくなり、検索フィールドが用意され、モーダル・ダイアログ・ボックスは使用されなくなりました。旧バージョンのJavaコントロール・パネルから、いくつかのオプションの場所が変更されました。 Java Platform, Standard Editionデプロイメント・ガイドのJavaコントロール・パネルを参照してください。 |
JEP 275: モジュラ式のJavaアプリケーションのパッケージ化 | モジュール認識やカスタム・ランタイム作成など、Project Jigsawの機能をJava Packagerに統合します。 小さめのパッケージを作成するには、 JDK 9ランタイムのみを使用するアプリケーションを作成します。以前のリリースのJREでのアプリケーションのパッケージ化には使用できません。 Java Platform, Standard Editionデプロイメント・ガイドのJREのカスタマイズおよびモジュラ・アプリケーションのパッケージ化を参照してください。 |
JEP 289: アプレットAPIの非推奨化 | アプレットAPIは非推奨となります。これは、Webブラウザ・ベンダーがJavaブラウザ・プラグインのサポートを削除したことにより有用性が下がっているためです。Appletクラスは引き続きJDK 9で使用できますが、今後のリリースでは削除対象とみなされます。Java Web Startまたは自己完結型のアプリケーションとしてアプレットを記述しなおすことを検討してください。 Java Platform, Standard Editionデプロイメント・ガイドのJava Web StartおよびJNLPへのJavaアプレットの移行および自己完結型アプリケーションのパッケージ化を参照してください。 |
Java SE 9には、言語に関するいくつかの細かい変更が含まれています。
機能 | 説明 |
---|---|
JEP 213: Milling Project Coin | いくつかの細かい変更を示します。
Java Platform, Standard Edition Java言語更新のJava SE 9でのJava言語の変更を参照してください。 |
Javadocの拡張機能には、簡素化されたドックレットAPI、Javadoc検索、HTML5出力の生成のサポート、モジュール・システムでのドキュメンテーション・コメントのサポートが含まれます。
機能 | 説明 |
---|---|
JEP 221: 簡素化されたドックレットAPI | 古いドックレットAPIを、別の標準的な既存のAPIを活用する、簡素化された新しいAPIに置き換えます。標準的なドックレットは、新しいドックレットAPIを使用するように書きなおされました。 注意: 既存のAPIおよび古い標準的なドックレットも使用できますが、モジュールなどの新しい言語機能をサポートするように更新されていません。 |
JEP 224: HTML5 Javadoc | HTML5出力の生成をサポートします。完全に準拠したHTML5出力を取得するには、ドキュメンテーション・コメント内に指定されたすべてのHTMLコンテンツがHTML5に準拠していることを確認してください。 |
JEP 225: Javadoc検索 | 生成されたAPIドキュメンテーションに検索ボックスが提供されます。この検索ボックスを使用して、プログラム要素、タグ内の単語、およびドキュメンテーション内のフレーズを検索できます。 |
JEP 261: モジュール・システム | モジュールの宣言でドキュメンテーション・コメントがサポートされます。新しいコマンドライン・オプションを使用すると、ドキュメント化する一連のモジュールを構成し、ドキュメント化されたすべてのモジュールの新しいサマリー・ページを生成することができます。 |
JDK 9のJVMの拡張機能を次に示します。
機能 | 説明 |
---|---|
JEP 165: コンパイラ・コントロール | コンパイラ・ディレクティブ・オプションを使用してJVMのコンパイルを制御する方法を提供します。制御のレベルは、実行時に管理可能で、メソッドに固有です。コンパイラ・コントロールはCompileCommandを置き換えるもので、下位互換性を有しています。 Java Platform, Standard Edition Java仮想マシン・ガイドのコンパイラ・コントロールを参照してください。 |
JEP 197: セグメント化されたコード・キャッシュ | コード・キャッシュを異なるセグメントに分割して(それぞれに特定のタイプのコンパイル済のコードが含まれます)、パフォーマンスを改善し、さらなる拡張を可能にします。 Java Platform, Standard Editionツール・リファレンスの |
JEP 276: 言語定義オブジェクト・モデルの動的リンク | プロパティの読取り、プロパティの書込み、関数の呼出しなど、実行時の高度なオブジェクト操作を適切なターゲット・メソッド・ハンドルに動的にリンクします。これらの操作は、渡された値の実際の型に基づいて、ターゲット・メソッド・ハンドルにリンクされます。これらのオブジェクト操作は、invokedynamicサイトとして表されます。 java.lang.invokeはinvokedynamicコール・サイトの動的リンクに対して低度のAPIを提供しますが、オブジェクトまたはそれらを実装するメソッドに対する、より高度な操作を表す方法は提供しません。 jdk.dynalinkパッケージでは、表現に動的型(静的に決定できない型)が含まれるプログラミング言語、およびこれらの動的型に対する操作がinvokedynamicコール・サイトとして表されるプログラミング言語(言語のオブジェクト・モデルまたは型システムがJVMのものと厳密に一致しないため)を実装できます。 |
JDK 9のJVMチューニングの拡張機能を次に示します。
機能 | 説明 |
---|---|
G1の操作性、決定論およびパフォーマンスの改善 | ガベージファースト(G1)ガベージ・コレクタが強化され、いくつかの重要なメモリー再利用設定を自動的に決定できるようになります。これまでは、最善の結果を得るために、これらの設定を手動で設定する必要がありました。さらに、G1ガベージ・コレクタの操作性、決定論およびパフォーマンスに関する問題も修正されました。 |
JEP 158: JVMロギングの統合 | JVMのすべてのコンポーネントに対する共通のロギング・システムが導入されます。 Java Platform, Standard Editionツール・リファレンスの |
JEP 214: JDK 8で非推奨となったGCの組合せの削除 | JDK 8で非推奨となったガベージ・コレクタ(GC)の組合せが削除されます。 これは、次のGCの組合せがなくなることを意味します。
コンカレント・マーク・スイープ(CMS)の「フォアグラウンド」モードも削除されました。次のコマンドライン・フラグは削除されました。
コマンドライン・フラグ |
JEP 248: G1をデフォルト・ガベージ・コレクタに変更 | 32ビットおよび64ビットのサーバー構成で、ガベージファースト(G1)がデフォルト・ガベージ・コレクタ(GC)になります。低停止時間のコレクタ(G1など)を使用すると、以前デフォルトであったスループット志向のコレクタ(パラレルGCなど)と比べて、ほとんどのユーザーにとって全体的なパフォーマンスが向上します。 Java Platform, Standard Edition HotSpot仮想マシン・ガベージ・コレクション・チューニング・ガイドのガベージファースト・ガベージ・コレクタを参照してください。 |
JEP 271: GCロギングの統合 | JEP 158で導入された統合JVMロギング・フレームワークを使用して、ガベージ・コレクション(GC)ロギングが再実装されます。GCロギングは、現在のGCロギング形式との一貫性をとる形で再実装されます。ただし、新旧の形式にはいくつかの違いがあります。 Java Platform, Standard Editionツール・リファレンスのJVM統合ロギング・フレームワークによるロギングの有効化を参照してください。 |
JEP 291: コンカレント・マーク・スイープ(CMS)ガベージ・コレクタの非推奨化 | コンカレント・マーク・スイープ(CMS)ガベージ・コレクタが非推奨となります。コマンドラインで |
機能 | 説明 |
---|---|
JEP 102: プロセスAPIの更新 | オペレーティング・システム・プロセスを制御および管理するためのAPIを改善します。 ProcessHandleクラスは、プロセスのネイティブ・プロセスID、引数、コマンド、起動時刻、累積CPU時間、ユーザー、親プロセスおよび子孫を提供します。このクラスは、プロセスの状態および終了プロセスをモニターすることもできます。ProcessHandle.onExitメソッドを使用すると、CompletableFutureクラスの非同期メカニズムはプロセスの終了時にアクションを実行できます。 Java Platform, Standard Edition Javaコア・ライブラリ開発者ガイドのプロセスAPI、java.lang.Processおよびjava.lang.ProcessHandleを参照してください。 |
JEP 193: 変数ハンドル | オブジェクト・フィールドおよび配列要素に対するjava.util.concurrent.atomicおよびsun.misc.Unsafe操作に相当するものを呼び出す標準的な方法を定義します。 フェンス操作の標準的なセットを定義します。これには、メモリー・オーダリングのきめ細やかな制御を可能にするVarHandle静的メソッドが含まれます。これは、フェンス操作の非標準的なセットを提供するsun.misc.Unsafeに取って代わるものです。 参照されたオブジェクトが確実に到達可能な状態にとどまるよう、標準的な到達可能性フェンス操作を定義します。 |
JEP 254: コンパクト文字列 | 文字列の内部表現にスペース効率の高い方法を採り入れます。これまで、Stringクラスは、1文字につき2バイト(16ビット)を使用して、文字をchar配列に格納していました。Stringクラスの新たな内部表現は、バイト配列にエンコーディング・フラグ・フィールドを加えたものです。 これは純粋に実装の変更であり、既存の公開インタフェースへの変更はありません。 Java Platform, Standard Editionツール・リファレンスで |
JEP 264: プラットフォーム・ロギングAPIおよびサービス | プラットフォーム・クラスがメッセージのロギングに使用できる最小限のAPIを、それらのメッセージの利用者に対するサービス・インタフェースとともに定義します。ライブラリまたはアプリケーションは、このサービスの実装を提供して、プラットフォーム・ログ・メッセージを任意のロギング・フレームワークにルーティングできます。実装が提供されない場合、java.util.logging APIに基づいてデフォルトの実装が使用されます。 |
JEP 266: 並行処理に関する追加の更新 | JEP 155: 並行処理に関する更新についてJDK 8で導入された更新に対して、並行処理に関するさらなる更新が追加されます。これには、相互運用可能な公開と登録のフレームワークおよびCompletableFuture APIに対する拡張機能が含まれます。 |
JEP 268: XMLカタログ | Organization for the Advancement of Structured Information Standards (OASIS) XMLカタログ・バージョン1.1標準をサポートする標準的なXMLカタログAPIが追加されます。このAPIは、リゾルバを受け入れるJAXPプロセッサで組込みまたは外部のリゾルバとして使用できるカタログおよびカタログ・リゾルバの抽出を定義します。 内部カタログAPIを使用する既存のライブラリまたはアプリケーションを新しいAPIに移行して、新しい機能を利用する必要があります。 Java Platform, Standard Edition Javaコア・ライブラリ開発者ガイドのXMLカタログAPIを参照してください。 |
JEP 269: コレクションのコンビニエンス・ファクトリ・メソッド | コレクションとマップのインスタンスを少ない要素で簡単に作成できるようになります。 次に例を示します。
Set<String> alphabet = Set.of("a", "b", "c"); Java Platform, Standard Edition Javaコア・ライブラリ開発者ガイドの不変のリスト、セットおよびマップの作成を参照してください。APIのドキュメントについては、不変のSet静的ファクトリ・メソッド、不変のMap静的ファクトリ・メソッド、および不変のList静的ファクトリ・メソッドを参照してください。 |
JEP 274: メソッド・ハンドルの強化 | java.lang.invokeパッケージのMethodHandle、MethodHandlesおよびMethodHandles.Lookupクラスが強化され、共通のユース・ケースが容易になり、より効果的にコンパイラを最適化できるようになります。 追加の内容は次のとおりです。
|
JEP 277: 非推奨化に関する強化 | @Deprecated注釈が刷新され、仕様におけるAPIのステータスと今後の処置について、より詳細な情報が提供されます。2つの新しい要素が追加されました。
例: @Deprecated(since="9", forRemoval=true) コア・プラットフォームの@Deprecated注釈が更新されました。 新しいツール Java Platform, Standard Edition Javaコア・ライブラリ開発者ガイドの非推奨化に関する強化を参照してください。 Java Platform, Standard Editionツール・リファレンスの |
JEP 285: スピン・ウェイト・ヒント | スピン・ループが実行中であることをJavaコードでヒントとして伝えることができるようにするAPIを定義します。スピン・ループは、ある条件が真であるか確認するため繰り返しチェックします。たとえば、ロックを取得できるタイミングをチェックし、取得後、なんらかの計算を安全に実行してから、ロックを解放します。このAPIは純粋にヒントであり、セマンティクス上の動作要件を伝えるものではありません。Thread.onSpinWaitメソッドを参照してください。 |
JEP 290: 直列化データの受信のフィルタリング | オブジェクト直列化データの受信ストリームをフィルタリングして、セキュリティと堅牢性を高めます。オブジェクト直列化クライアントは入力をより簡単に検証でき、エクスポートされたRemote Method Invocation (RMI)オブジェクトは呼出し引数をより簡単に検証できます。 直列化クライアントは、ObjectInputStreamに対して設定されるフィルタ・インタフェースを実装します。RMIの場合、オブジェクトはMarshalInputStreamに対してフィルタを設定して呼出し引数をアンマーシャル時に検証するRemoteServerRefを介してエクスポートされます。 |
JEP 259: スタックウォーキングAPI | スタック・トレース内の情報に対する簡単なフィルタリングと緩やかなアクセスを可能にするスタックウォーキングAPIを提供します。 このAPIは、指定の基準に一致するフレームで停止する短時間の走査と、スタック全体を走査する長時間の走査の両方をサポートします。指定の基準に一致するフレームで停止すると、呼出し側がスタックの最上位のフレームのみに関心があれば、すべてのフレームを検査するコストが回避されます。このAPIを使用すると、スタック・ウォーカの構成に応じて、Classオブジェクトにアクセスできるようになります。java.lang.Stackwalkerクラスを参照してください。 |
JEP 255: 特定のXerces 2.11.0更新をJAXPにマージ | Xercesパーサの2.11.0バージョンをサポートするようにJDKが更新されます。公開JAXP APIに対する変更はありません。 この変更はXerces 2.11.0の次のカテゴリに関するものです。データ型、DOM L3 Serializer、XPointer、Catalog Resolver、およびXML Schema Validation (バグ修正は含まれますが、XML Schema 1.1開発コードは含まれません)。 |
JDK 9のNashornの拡張機能を次に示します。
機能 | 説明 |
---|---|
JEP 236: NashornのパーサーAPI | 特定のIDEおよびサーバー側フレームワークのアプリケーションがECMAScriptコードを解析および分析できるようにします。 文字列、URL、またはParserクラスのメソッドを含むファイルから、ECMAScriptコードを解析します。これらのメソッドは、ECMAScriptコードを抽象構文ツリーとして表すCompilationUnitTreeのインスタンスを返します。 jdk.nashorn.api.treeパッケージには、Nashorn Parser APIが含まれます。 |
JEP 292: 特定のECMAScript 6機能をNashornに実装 | 6th edition of ECMA-262 (ECMAScript 6または略称ES6としても知られています)で導入された多くの新機能が実装されます。実装される機能には次のものが含まれます。
|
JDK 9のクライアント・テクノロジの拡張機能を次に示します。
機能 | 説明 |
---|---|
JEP 251: マルチレゾリューション画像 | 解像度が異なる画像のセットを1つのマルチレゾリューション画像にカプセル化できるようにします。これは、実行時に概算で96dpiから300dpiに解像度が変動する可能性があるディスプレイ・デバイスにアプリケーションを適合させるために役立ちます。 java.awt.image.MultiResolutionImageインタフェースは、解像度が異なる画像のセットを1つのマルチレゾリューション画像にカプセル化します。これにより、アプリケーションで解像度が異なる画像を簡単に処理および表示できるようになります。 |
JEP 253: モジュール化に伴うJavaFX UIコントロールとCSS APIの提供 | JavaFX UIコントロールおよびCSS機能のための公開APIが提供されます。これまで、これらを入手できるのは内部パッケージに限定されていましたが、モジュール化に伴いアクセスできなくなりました。 新しいパッケージ 新しいクラス |
JEP 256: BeanInfo注釈 |
これらの注釈型は、実行時にBeanInfoを生成する際、対応する機能属性を設定します。したがって、Beanクラスごとに別々のBeanInfoクラスを作成するかわりに、Beanクラス内で直接、これらの属性を簡単に指定できます。また、自動生成されたクラスを削除できるため、クライアント・ライブラリのモジュール化も簡単になります。 |
JEP 262: TIFF画像の入出力 | Tag Image File Format (TIFF)の読取りと書込みを標準としてパッケージjavax.imageioに追加します。新しいパッケージjavax.imageio.plugins.tiffは、TIFFメタデータのオプションの操作を簡素化するクラスを提供します。 |
JEP 263: WindowsおよびLinuxでのHiDPIグラフィックス | WindowsおよびLinuxでのHigh Dots Per Inch (HiDPI)ディスプレイで、AWTおよびSwingコンポーネントを自動的に拡大縮小およびサイズ設定します。 JDKは、すでにOS XでのHiDPI「Retinaディスプレイ」をサポートしています。 このリリースの前まで、WindowsおよびLinuxでは、従来のディスプレイの2倍から3倍の高さのピクセル密度を持つHiDPIディスプレイの場合でも、Javaアプリケーションはピクセルに基づいてサイズ設定およびレンダリングされていました。このため、読取りや使用の際にGUIコンポーネントとウィンドウが小さくなりすぎていました。 |
JEP 272: プラットフォーム固有のデスクトップ機能 | デスクトップの操作を可能にするjava.awt.Desktopクラスに次のようなメソッドが追加されます。
これらの新しいメソッドは、OS Xパッケージcom.apple.eawtに含まれている内部APIの機能を置き換えます。JDK 9ではデフォルトでこれらのAPIにアクセスできません。com.apple.eioパッケージにはアクセスできなくなりました。 |
JEP 283: LinuxでのGTK 3の有効化 | LinuxまたはSolarisで、Javaグラフィカル・アプリケーション(JavaFX、SwingまたはAbstract Window Toolkit (AWT)に基づくもの)がGTK+バージョン2またはバージョン3を使用できるようにします。 デフォルトでは、LinuxまたはSolarisのJDKは、使用可能であればGTK+ 2を使用し、使用不可の場合はGTK+ 3を使用します。 特定のバージョンのGTK+を使用するには、システム・プロパティ |
JDK 9における国際化の拡張機能を次に示します。
機能 | 説明 |
---|---|
JEP 267: Unicode 8.0 | Unicode 8.0をサポートします。JDK 8はUnicode 6.2をサポートしていました。 Unicode 6.3、7.0および8.0の標準をあわせると、10,555の文字、29のスクリプト、および42のブロックが導入されました。これらすべてがJDK 9でサポートされています。 |
JEP 252: デフォルトで使用可能となるCLDRロケール・データ | 共通ロケール・データ・リポジトリ(CLDR)のXMLベースのロケール・データ(JDK 8で初めて追加されました)をJDK 9のデフォルト・ロケール・データとして使用します。以前のリリースでは、デフォルトはJREでした。 JDK 8と互換性のある動作を有効にするには、システム・プロパティ Java Platform, Standard Edition国際化ガイドのデフォルトで使用可能となるCLDRロケール・データを参照してください。 |
JEP 226: UTF-8 プロパティ・ファイル | プロパティ・ファイルをUTF-8エンコーディングでロードします。以前のリリースでは、プロパティ・リソース・バンドルをロードする際、ISO-8859-1エンコーディングが使用されていました。非ラテン文字を表す場合は、UTF-8のほうが利便性に優れています。 既存のプロパティ・ファイルのほとんどは影響を受けません。 Java Platform, Standard Edition国際化ガイドのUTF-8プロパティ・ファイルを参照してください。 |
Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。
Oracleサポートへのアクセス
サポートを購入したオラクル社のお客様は、My Oracle Supportを介して電子的なサポートにアクセスできます。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。
Java Platform, Standard Edition Oracle JDK 9の新機能, リリース9
E90929-01
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
このドキュメントでは、Java SE 9およびJDK 9の機能および拡張機能、ならびにOracleのJava SE 9の実装について説明します。
このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。
ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。
このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。
U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.
このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。
OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。
Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。
このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。