Java Platform Standard Edition

国際化ガイド

リリース9

E90928-01(原本部品番号:E76505-03)

2017年9月

このガイドでは、Java SEの国際化に関するAPIと機能の概要を説明します。

Java Platform, Standard Edition国際化ガイド, リリース9

E90928-01

Copyright © 1993, 2017, Oracle and/or its affiliates.  All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

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およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1 JDK 9における国際化の拡張機能

- Unicode 8.0

- デフォルトで有効になっているCLDRロケール・データ

- UTF-8プロパティ・ファイル

2 国際化の概要

- テキストの表現

- ロケールの識別とローカリゼーション

- ロケール

- Localeクラス

- サポートされるロケール

- ローカライズされたリソース

- ResourceBundleクラス

- ResourceBundle.Controlクラス

- ListResourceBundleクラス

- PropertyResourceBundleクラス

- 日付と時間の処理

- テキスト処理

- 書式指定

- Formatクラス

- DateFormatクラス

- SimpleDateFormatクラス

- DateFormatSymbolsクラス

- NumberFormatクラス

- DecimalFormatクラス

- DecimalFormatSymbolsクラス

- ChoiceFormatクラス

- MessageFormatクラス

- ParsePositionクラス

- FieldPositionクラス

- ロケールに依存する文字列の操作

- Collatorクラス

- RuleBasedCollatorクラス

- CollationElementIteratorクラス

- CollationKeyクラス

- BreakIteratorクラス

- StringCharacterIteratorクラス

- CharacterIteratorインタフェース

- Normalizerクラス

- ロケールに依存するサービスのSPI

- 文字エンコーディングの変換

- サポートされているエンコーディング

- ストリーム入出力

- ReaderクラスとWriterクラス

- PrintStreamクラス

- charsetパッケージ

- インプット・メソッド

- Swingでのインプット・メソッドのサポート

- Input Method Framework

3 サポートされるエンコーディング

- 基本エンコーディング・セット(java.baseモジュールに含まれる)

- 拡張エンコーディング・セット(jdk.charsetsモジュールに含まれる)

4 サポートされるカレンダ

5 サポートされるフォント

- 物理フォントのサポート

- 論理フォントのサポート

- Lucidaフォント

6 フォント構成ファイル

- サポートされるプラットフォーム

- フォント構成ファイルのロード

- フォント構成ファイル内で使用される名前

- すべてのプラットフォームに共通のプロパティ

- バージョン・プロパティ

- コンポーネント・フォントのマッピング

- 検索順序

- 除外範囲

- プロポーショナル・フォント

- フォント・ファイル名

- 追加のフォント・パス

- Windows用のプロパティ

- SolarisおよびLinux用のプロパティ

はじめに

このガイドでは、Java SEの国際化に関するAPIと機能の概要を説明します。

対象読者

このガイドは、技術的な変更をせずにアプリケーションを様々な言語および地域に適合させるための、アプリケーションを設計するJavaプログラマを対象としています。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご購入の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チュートリアル(Java SE 8以前)の国際化の学習に関する項を参照してください。

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 JDK 9における国際化の拡張機能

Oracle Java Development Kit 9の国際化の拡張機能には、次のものがあります。

- Unicode 8.0

- デフォルトで有効になっているCLDRロケール・データ

- UTF-8プロパティ・ファイル

Unicode 8.0

Unicode 8.0のためのサポートが追加されています。Java Platform, Standard Edition (Java SE) 8ではUnicode 6.2をサポートしていました。

Unicode 6.3、7.0および8.0標準では、10,555文字、29スクリプトおよび42ブロックを導入し、これらのすべてがJava SE 9でサポートされています。

デフォルトで有効になっているCLDRロケール・データ

最初にJDK 8に追加されたUnicode Common Locale Data Repository (CLDR)のXMLベースのロケール・データが、JDK 9でのデフォルトのロケール・データです。以前のリリースでは、デフォルトはJREでした。

ロケール・データには、次のキーワードで識別される異なる4つのソースがあります。

- CLDRは、Unicode CLDRプロジェクトから提供されるロケール・データを表します。

- HOSTは、基盤となるオペレーティング・システムの設定に対する現在のユーザーによるカスタマイズを表します。これはそのユーザーのデフォルト・ロケールでのみ機能します。カスタマイズ可能な設定はオペレーティング・システムによって異なる場合があります。ただし、主に日付、時間、数値および通貨の書式がサポートされます。

- SPIは、インストール済サービス・プロバイダ・インタフェース(SPI)・プロバイダによって実装された、ロケールに依存するサービスを表します。

- COMPAT(旧称JRE)は、JDK 9より前のリリースと互換性のあるロケール・データを表します。JREを値として使用できますが、COMPATの方がより適切です。

ロケール・データ・ソースを選択するには、java.locale.providersシステム・プロパティを使用して、データ・ソースを優先順に並べます。プロバイダがリクエストされたロケール・データを提供できない場合、検索は順に次のプロバイダに進みます。次に例を示します。

java.locale.providers=HOST,SPI,CLDR,COMPAT

このプロパティを設定しない場合、デフォルトの動作は次の設定と同等です。

java.locale.providers=CLDR,COMPAT,SPI

JDK 8と互換性のある動作を有効にするには、java.locale.providersシステム・プロパティをCLDRの左にCOMPATの値に設定します。

サポートされているロケールについては、JDK 9およびJRE 9でサポートされるロケールに関するページを参照してください。関連するAPIについてはjava.util.spi.LocaleServiceProvider API仕様に関する項を参照してください。

UTF-8プロパティ・ファイル

Java SE 9では、プロパティ・ファイルはUTF-8エンコーディングでロードされます。以前のリリースでは、ISO-8859-1エンコーディングがプロパティ・リソース・バンドルのロードに使用されました。UTF-8は、非Latin文字の表現により適した方法です。

ほとんどの既存のプロパティ・ファイルは影響を受けません。UTF-8およびISO-8859-1はASCII文字に対してエンコーディングが同じであり、人間が判読可能な非ASCII ISO-8859-1エンコーディングは有効なUTF-8ではありません。無効なUTF-8バイト・シーケンスが検出された場合、Javaランタイムではファイルを自動的にISO-8859-1で再読込みします。

問題がある場合、次のオプションを検討してください。

- プロパティ・ファイルをUTF-8エンコーディングに変換する。

- プロパティ・ファイルのエンコーディングに対して、ランタイム・システム・プロパティを次の例のように指定する。

java.util.PropertyResourceBundle.encoding=ISO-8859-1

java.util.PropertyResourceBundleに関する項を参照してください。

2 国際化の概要

国際化とは、技術的な変更をせずにアプリケーションをさまざまな言語および地域に適合させるための、アプリケーションの設計プロセスのことです。国際化(internationalization)という語は、最初の「i」と最後の「n」の間に18文字あるため、i18nと略されることがあります。

国際化されたプログラムには、次の特徴があります。

- ローカリゼーション・データを追加することにより、同じ実行可能ファイルを世界中で実行できる。

- ステータス・メッセージやGUIコンポーネントのラベルなどの、テキスト要素がプログラム内でハードコード化されていない。その代わり、ソース・コードの外側に保存され、動的に取り出される。

- 新しい言語をサポートするために再コンパイルをする必要がない。

- 日付や通貨などの文化に依存するデータが、エンド・ユーザーの地域と言語に一致した形式で表示される。

- 短期間でローカライズできる。

全世界に広がるインターネットでは、世界中どこでも使えるソフトウェアが必要になります。つまり、ユーザーの国や言語を意識しないで開発でき、様々な国や地域に合わせてローカライズできるソフトウェアです。Javaプラットフォームでは、グローバル・アプリケーションを開発するための豊富なAPI群が提供されています。このような国際化のためのAPIは、Unicode標準に基づいており、テキスト、数値、日付、通貨、およびユーザー定義のオブジェクトを任意の国の慣習に合わせる機能を備えています。

このガイドでは、Java Platform, Standard Editionの国際化に関するAPIと機能の概要を説明します。コーディング例と詳しい手順の説明については、Javaチュートリアルの国際化の学習に関する項を参照してください。

テキストの表現

Javaプログラミング言語はUnicode文字セットをベースにしており、いくつかのライブラリではUnicode標準が実装されています。Unicodeは、世界の主要な書記法すべてに加えて、基本的な学術記号をサポートしています。Unicode仕様では最初、各文字を16ビット固定長の実体として定義していましたが、その後、16ビットより長い表現を必要とする文字も取り扱えるようにUnicode標準が変更されました。有効なコード・ポイントの範囲は現在、U+0000 - U+10FFFFです。UTF-16標準により定義されるエンコーディングでは、すべてのUnicodeコード・ポイントを、1つまたは2つの16ビット単位を使用して表現できます。

Javaプログラミング言語の基本データ型charは、符号なしの16ビット整数なので、U+0000 - U+FFFFの範囲のUnicodeコード・ポイントや、UTF-16のコード単位を表現できます。Javaプラットフォームで文字シーケンスを表現する各種の型およびクラスは、UTF-16のシーケンスです。そのような型およびクラスとしては、char[]、java.lang.CharSequenceの実装(たとえばStringクラス)、java.text.CharacterIteratorの実装などがあります。ほとんどのJavaソース・コードは、7ビット文字エンコーディングのASCIIまたは8ビット文字エンコーディングのISO-8859-1で記述されますが、処理の前にUTF-16に変換されます。

Characterクラスは、charプリミティブ型のオブジェクト・ラッパーとしての役割を果たします。Characterクラスには、isLowerCase()やisDigit()など、文字のプロパティを判別するためのstaticメソッドも含まれています。これらのメソッドは、char (U+0000 - U+FFFFの範囲のUnicodeコード・ポイントを表現できる)またはint (すべてのUnicodeコード・ポイントを表現できる)のいずれかを受け付けるようにオーバーロードされています。

ロケールの識別とローカリゼーション

ロケール・オブジェクトは、言語と地域の特定の組合せを指定する識別子です。ローカライゼーションは、ロケール固有のコンポーネントを追加し、テキストを翻訳することで、特定地域または言語にソフトウェアを適応させるプロセスです。

ロケール

Javaプラットフォームでは、ロケールは、言語と地域の特定の組み合わせに対する単なる識別子です。ロケール固有の属性の集合ではありません。ロケール固有の情報は、ロケールの影響を受けるクラスがそれぞれ独自に保持しています。このような設計のため、ロケール固有のリソースを保持する方法に関し、ユーザー・オブジェクトとシステム・オブジェクトで違いはありません。どちらも、標準のローカリゼーション・メカニズムを使います。

Javaプログラムには、単一のグローバル・ロケールは割り当てられていません。ロケールに依存するすべての操作には、引数として明示的にロケールを渡すことができます。これにより、多言語プログラムが非常に簡単になります。グローバル・ロケールが強制的に使われることはありませんが、ロケールを明示的に管理する必要のないプログラムでは、デフォルトのロケールを利用できます。デフォルト・ロケールを使うと、全体的な表示形式を一度の選択で変えることができます。

Javaのロケールは、別のオブジェクトから出される、ある動作に対する要求として機能します。たとえば、カレンダ・オブジェクトにフランス語系カナダ用ロケールを渡すと、ケベック州の慣習に従って正しく動作するようカレンダに要求したことになります。ロケールを受け取ったオブジェクトは、適切な処理を行わなければなりません。オブジェクトが特定のロケールに対してローカライズされていない場合、オブジェクトは、ローカライズされているロケールでよく似たものを探します。たとえば、カレンダ・オブジェクトがフランス語系カナダのロケール用にローカライズされていなくても、一般的なフランス語についてローカライズされている場合は、かわりにフランス語のローカライズ版を使用します。

Localeクラス

Localeオブジェクトは、地理的、政治的、または文化的に特定の地域を表します。タスクを実行するためにロケールを必要とする操作のことを、ロケール依存操作と呼びます。ロケール依存操作は、Localeオブジェクトを使用して、ユーザーに合うように情報を加工します。たとえば、数値の表示はロケールに依存する操作です。数値の書式は、ユーザーに固有の国、地域、文化などの慣習や決まりに従って設定する必要があります。

サポートされるロケール

Javaプラットフォームでは、クラスごとに独自のローカライズ版が保持されるので、サポートされるロケールの集合は1種類だけでなくてもかまいません。ただし、Javaプラットフォームのクラスとしては、一貫性のあるローカリゼーションをサポートしています。Javaプラットフォームのほかの実装では、異なるロケールをサポートする場合があります。JREがサポートするロケールの一覧は、JDK 9およびJRE 9でサポートされるロケールに関するページを参照してください。

ローカライズされたリソース

すべてのロケール依存クラスは、サポートするロケール用にカスタマイズされたリソースにアクセスできなければなりません。ローカリゼーションの処理を容易にするには、ロケールごとにリソースをグループ化し、プログラムのロケールに依存しない部分から切り離すことが有用です。

ResourceBundleクラス

ResourceBundleクラスは、リソースのコンテナを表す抽象基底クラスです。プログラムでは、特定のロケールのためのリソースを含むResourceBundleのサブクラスを作成します。使用するコードを変更しなくても、ResourceBundleのインスタンスに新しいリソースを追加したり、ResourceBundleの新しいインスタンスをシステムに追加したりできます。リソースをクラスとしてパッケージ化することで、Javaのクラス・ローディング・メカニズムを利用してリソースを探すことができます。

リソース・バンドルには、ロケール固有のオブジェクトが含まれます。Stringオブジェクトなど、ロケール固有のリソースが必要な場合は、現在のユーザーのロケールに適したリソース・バンドルからリソースをロードします。このようにして、リソースのバンドルに含まれているロケール固有の情報のすべて、または少なくとも大部分を切り離し、ユーザーのロケールとの依存関係が弱いコードを作成できます。

そのため、次のような特徴を備えたJavaコードを作成できます。

- 異なる言語への地域対応、または翻訳が容易

- 複数のロケールを同時に処理可能

- 将来サポートするロケールを追加する際の修正が容易

ResourceBundle.Controlクラス

ResourceBundle.ControlはResourceBundleのネストされたクラスです。このクラスで、ResourceBundle.getBundleファクトリ・メソッドから呼び出されるメソッドを定義すれば、リソース・バンドル・ロード処理の動作を変更できます。たとえば、XMLなどのアプリケーション固有のリソース・バンドル形式は、メソッドをオーバーライドすることでサポート可能になります。

Java SE 9以降、ResourceBundle.Controlは名前のあるモジュールでサポートされていません。Controlを使用した既存のコードは動作しますが、名前のあるモジュール内の新規コードの場合、basenameProviderを実装し、ここからリソース・バンドルをロードします。名前のあるリソース・バンドルに関する項を参照してください。

ListResourceBundleクラス

ListResourceBundleは、ロケール用のリソースを便利かつ使いやすいリストで管理する、ResourceBundleの抽象サブクラスです。

PropertyResourceBundleクラス

PropertyResourceBundleは、プロパティ・ファイルからの一連のstatic文字列を使用してロケール用のリソースを管理する、ResourceBundleの具象サブクラスです。

日付と時間の処理

Java SE 8で導入された日時パッケージのjava.timeでは、日付と時間に関する包括的なモデルを提供します。java.timeは国際標準化機構(ISO)のカレンダ・システムに基づいていますが、一般的に使用されるグローバル・カレンダもサポートしています。

Javaチュートリアル(Java SE 8以前)の日時パッケージに関するレッスンを参照してください。

テキスト処理

テキスト処理には、通貨、日付、時間およびテキスト・メッセージなどのロケールに依存する情報の書式指定が含まれています。これにはロケールに依存する方法でのテキストの操作も含まれており、検索やソートなどの文字列操作がロケールに関係なく適切に実行されることを意味しています。

書式指定

データを出力するときの書式指定には、多くの文化的な慣習が適用されます。数値、日付、時間、およびメッセージのすべてについて、書式を指定してからでないと表示できない場合があります。Javaプラットフォームでは、柔軟性のある書式指定クラス群が提供されており、ロケールの標準的な書式および独自に定義された書式の両方を扱うことができます。これらの書式指定クラスを使うと、書式を設定された文字列の構文を解析して、構成するオブジェクトに戻すこともできます。

Formatクラス

Formatクラスは、日付、時間、メッセージ、数値など、ロケールに依存する情報に書式を指定する機能のための、抽象基底クラスです。主要なサブクラスとして、DateFormat、NumberFormatおよびMessageFormatの3つが提供されています。これら3つのクラスでは、それぞれ独自のサブクラスが提供されています。

DateFormatクラス

日付と時間は内部的にはロケールに依存しない方法で格納されますが、ロケールを反映した形式で表示できるよう書式を指定する必要があります。たとえば、次は同じ日付に対する異なる書式の例です。

- November 3, 1997 (英語)

- 3 novembre 1997 (フランス語)

DateFormatクラスは、ロケールに依存しない方法で日付と時間の値の書式指定と構文解析を行うための、抽象基底クラスです。特定のロケールに対する時間の標準書式を取得するためのstaticファクトリ・メソッドがいくつか用意されています。

DateFormatオブジェクトは、CalendarオブジェクトとTimeZoneオブジェクトを使用して、時間の値を解釈します。デフォルトでは、特定のロケールに対するDateFormatオブジェクトは、そのロケールに対する適切なCalendarオブジェクトとシステムのデフォルトのTimeZoneオブジェクトを使用します。これらの設定は、必要に応じてオーバーライドできます。

SimpleDateFormatクラス

SimpleDateFormatクラスは具象クラスで、ロケールに依存した方法で日付と時間の書式指定と構文解析を行います。このクラスを使うと、書式指定(ミリ秒をテキストに)、構文解析(テキストをミリ秒に)、および正規化を行うことができます。

DateFormatSymbolsクラス

DateFormatSymbolsクラスは、月の名前、曜日の名前、時間、タイムゾーンのデータなど、日付と時間の書式指定に関するローカライズ可能なデータをカプセル化するために使用します。DateFormatクラスとSimpleDateFormatクラスはどちらも、DateFormatSymbolsクラスを使用してこの情報をカプセル化します。

通常、プログラムでDateFormatSymbolsクラスを直接使用することはありません。実際には、DateFormatクラスのファクトリ・メソッドで、書式指定の機能を実装します。

NumberFormatクラス

NumberFormatクラスは、数値データの書式指定と構文解析のための抽象基底クラスです。異なる種類のロケール固有の数値書式を取得するため、staticファクトリ・メソッドがいくつか用意されています。

NumberFormatクラスは、任意のロケールで数値の書式指定と構文解析を行うときに役に立ちます。このクラスを使うコードは、小数点、桁区切り、使われている特定の10進数字、または数値の書式が10進数かどうかなどに対するロケールの規則から、完全に独立しています。通常の10進数、通貨、パーセントなどで数値を表示することもできます。

- 1,234.5 (米国形式での10進数)

- $1,234.50 (米国形式での米国通貨)

- 1.234,50€(ドイツ形式での欧州通貨)

- 123.450% (ドイツ形式でのパーセント)

DecimalFormatクラス

数値は、内部的にはロケールに依存しない方法で格納されていますが、ロケールを反映した形式で表示できるよう書式を指定する必要があります。たとえば、「#,###.00」というパターンを使うと、同じ数値でも次のように異なる書式になる場合があります。

- 1.234,56 (ドイツ語)

- 1,234.56 (英語)

DecimalFormatクラスは、NumberFormatクラスの具象サブクラスで、10進数値の書式指定を行うことができます。通常、このクラスのインスタンスを直接生成することはありませんが、提供されているファクトリ・メソッドは使います。

DecimalFormatクラスには、数値の書式指定の方法を指定するパターン文字列を受け取る機能があります。パターンでは、数値の精度、先頭の0を表示するかどうか、使用する通貨記号などの属性を指定します。プログラムで独自の書式を作る必要がある場合は、パターン文字列を変更できます。

DecimalFormatSymbolsクラス

DecimalFormatSymbolsクラスは、数値の書式を指定するときにDecimalFormatが必要とする記号群(小数点、グループ化区切り文字など)を表します。DecimalFormatクラスは、それ自体のために、ロケール・データからDecimalFormatSymbolsクラスのインスタンスを生成します。これらの記号のいずれかを変更する必要がある場合は、DecimalFormatオブジェクトからDecimalFormatSymbolsオブジェクトを取得して修正できます。

ChoiceFormatクラス

ChoiceFormatクラスは、NumberFormatクラスの具象サブクラスです。ChoiceFormatクラスを使用すると、ある範囲の数値に書式を指定できます。このクラスは、通常、MessageFormatオブジェクトの中で複数形を処理するときに使用されます。

MessageFormatクラス

プログラムでは、一連の文字列、数値、およびほかのデータからメッセージを作らなければならない場合がよくあります。たとえば、ディスク・ドライブにあるファイルの数を表示するメッセージのテキストは、状況によって次のように変わります。

- The disk C contains 100 files.

- The disk D contains 1 file.

- The disk F contains 0 files.

一連の文字列と数値から組み立てるメッセージがハードコードされている場合は、ほかの言語に翻訳できません。たとえば、次の例で、パラメータの「3」と「G」の位置が違うことに注意してください。

- The disk G contains 3 files. (英語)

- Il y a 3 fichiers sur le disque G. (フランス語)

MessageFormatクラスを使用すると、言語に依存しない方法で、文字や数字を連結したメッセージを作成できます。MessageFormatオブジェクトは、複数のオブジェクトを受け取り、書式を設定して、パターンの適切な位置に書式を設定した文字列を挿入します。

ParsePositionクラス

ParsePositionクラスは、Formatクラスとそのサブクラスによって使用され、構文解析中の現在位置を記録します。FormatクラスのparseObject()メソッドでは、引数としてParsePositionオブジェクトが必要です。

FieldPositionクラス

FieldPositionクラスは、Formatクラスとそのサブクラスによって使用され、書式指定された出力のフィールドを識別します。Formatクラスのformat()メソッドの1つでは、引数としてFieldPositionオブジェクトが必要です。

ロケールに依存する文字列の操作

プログラムでは、文字列の操作が頻繁に必要になります。文字列に対する共通の操作として、検索とソートがあります。文字列の照合やテキストのさまざまな境界の検出など、ある種の処理は、正確に行おうとすると非常に難しく、複数の言語を考慮する必要がある場合はさらに困難になります。Javaプラットフォームでは、このような共通の文字列操作の多くをロケールに依存した方法で処理するためのクラス群が提供されています。

Collatorクラス

Collatorクラスでは、ロケールに依存した文字列の比較が行われます。自然言語テキストのための検索ルーチンおよびアルファベット順ソート・ルーチンを作るには、このクラスを使います。Collatorは、抽象基底クラスです。サブクラスでは、具体的な照合方法が実装されます。RuleBasedCollatorサブクラスは広範囲の言語に適用可能です。さらに特殊な必要性がある場合には、ほかのサブクラスを作成できます。

RuleBasedCollatorクラス

RuleBasedCollatorクラスは、Collatorクラスの具象サブクラスで、データ駆動の簡単な表照合機能を提供します。RuleBasedCollatorクラスを利用し、目的にあわせてカスタマイズした表ベースの照合機能を作成できます。たとえば、大文字、アクセント、およびUnicode複合文字を無視(または意識)する照合機能を作ることができます。

CollationElementIteratorクラス

CollationElementIteratorクラスは、多国語文字列の各文字を処理するときのイテレータとして使用されます。イテレータは、位置付けされた文字の順序の優先順位を返すために使われます。文字の順序の優先順位つまりキーは、特定のCollatorオブジェクトの中で文字を照合する方法を定義するものです。CollationElementIteratorクラスは、RuleBasedCollatorクラスのcompare()メソッドで使用されます。

CollationKeyクラス

CollationKeyオブジェクトは、特定のCollatorオブジェクトの規則が適用された文字列を表します。2つのCollationKeyオブジェクトを比較すると、それらが表す文字列の相対的な順序が返されます。CollationKeyオブジェクトを使用して文字列を比較する方が、一般に、Collator.compare()メソッドを使用するより高速です。したがって、文字列の一覧をソートするときのように、文字列を比較する回数が多い場合は、CollationKeyオブジェクトを使用する方が効率的です。

BreakIteratorクラス

BreakIteratorクラスは、テキスト文字列の中から次のような種類の境界の位置を見つけるためのメソッドを間接的に実装します。

- 潜在的な行分割

- 文

- 語

- 文字

行、文、語、および文字を区切る場所の規則は、言語の種類により異なります。BreakIteratorクラスはロケールに依存するので、テキストを操作するプログラムで使うことができます。たとえば、文字の強調表示、語の切り取り、次の文へのカーソルの移動、行末での折り返しなどが可能なワープロ・プログラムを考えます。このワープロ・プログラムは、分割イテレータを使ってテキストの論理的な境界を決定し、ロケールを意識した方法でテキストを操作できるようにします。

StringCharacterIteratorクラス

StringCharacterIteratorクラスは、Unicode文字の文字列に対して双方向の反復処理を行う機能を提供します。このクラスは、カーソルを使ってある範囲のテキストの中を移動し、個別の文字または文字のインデックス値を返すことができます。StringCharacterIteratorクラスは、CharacterIteratorインタフェースの文字イテレータ機能を実装しています。

CharacterIteratorインタフェース

CharacterIteratorインタフェースは、Unicode文字に対する双方向の反復処理のためのプロトコルを定義しています。ある範囲のテキストの中を移動し、個別のUnicode文字またはそのインデックス値を返すクラスの場合、このインタフェースを実装する必要があります。CharacterIteratorは、文字検索を行うときに役に立ちます。

Normalizerクラス

Normalizerクラスは、Unicodeテキストを等価な合成形式または分解形式に変換するメソッドを提供します。このクラスは、Unicode標準によって定義されたUnicode Normalization Formをサポートします。

ロケールに依存するサービスのSPI

java.textおよびjava.utilパッケージ内のクラスが提供する、ロケールに依存するサービスは、ロケールに依存するサービスのSPIを実装すれば、Javaランタイムがまだサポートしていないロケールにも拡張できます。

JDK 9では拡張メカニズムをサポートしていませんが、java.text.spi、java.util.spiおよびjava.awt.im.spiパッケージの国際化機能のためのSPI実装がアプリケーションのクラスパスからロードされます。

java.utilパッケージに含まれるCurrency、LocaleおよびTimeZoneの各クラスのローカライズされた記号や名前のほか、java.textパッケージに含まれる次のクラスの実装は、SPIとともにプラグインできます。

- BreakIterator

- Collator

- DateFormat

- DateFormatSymbols

- DecimalFormatSymbols

- NumberFormat

文字エンコーディングの変換

Javaプラットフォームは、ネイティブの文字エンコーディングとしてUnicodeを使っていますが、Javaプログラムの多くでは、まだ、ほかのエンコーディングのテキスト・データを扱う必要があります。そのため、Javaでは、多くの標準的な文字エンコーディングとUnicodeの間の変換を行うクラス群が提供されています。Unicode以外のテキスト・データを扱う必要があるJavaプログラムでは、データをいったんUnicodeに変換し、Unicodeとしてデータを処理してから、その結果を変換して外部の文字エンコーディングに戻します。InputStreamReaderクラスとOutputStreamWriterクラスでは、他の文字エンコーディングとUnicodeの間の変換を行うメソッドが提供されています。

サポートされるエンコーディング

InputStreamReader、OutputStreamWriter、Stringの各クラスでは、Unicodeと「サポートされるエンコーディング」の一覧に示されている文字エンコーディングの間での変換が可能です。

ストリーム入出力

Javaプラットフォームでは、文字データ処理機能を向上させるため、java.ioパッケージに機能が追加されています。つまり、ReaderクラスとWriterクラスの追加、およびPrintStreamクラスに対する拡張です。

ReaderクラスとWriterクラス

ReaderクラスとWriterクラスの階層は、文字ストリームで入出力操作を行う機能を提供します。これらの階層は、InputStreamクラスとOutputStreamクラスの階層と並列になっていますが、バイトのストリームではなく、文字のストリームを処理します。文字ストリームを使うと、特定の文字エンコーディングに依存しないプログラムを簡単に記述でき、したがって、国際化も簡単になります。ReaderクラスとWriterクラスには、Unicodeと他の文字エンコーディングの間の変換を行う機能もあります。

PrintStreamクラス

PrintStreamクラスは、システムのデフォルトの文字エンコーディングと行末記号を使用して出力を生成します。この変更により、System.out.println()などのメソッドは、ASCII以外のデータをより適切に処理できます。

charsetパッケージ

java.nio.charsetパッケージは、文字エンコーディング変換のための土台を提供します。アプリケーションでは、このパッケージに含まれるクラスを使用して、組込みの文字変換プログラムの動作を微調整できます。また、java.nio.charset.spiパッケージを使用すると、組込みの文字変換プログラムでサポートされていない文字エンコーディング用のカスタム変換プログラムを作成することもできます。

インプット・メソッド

インプット・メソッドは、ユーザーがテキストを単にキーボード上でタイプする以外の方法でテキストを入力できるソフトウェア・コンポーネントです。数千種類もの文字を使う日本語、中国語、韓国語を、キーボードのそれよりはるかに少ないキーで入力する場合に、共通してこのインプット・メソッドを使用します。Javaプラットフォームでは、この3言語以外のインプット・メソッドもサポートされており、手書きや音声認識などの異なる入力メカニズムにも使用できます。

また、Javaプラットフォームでは、WindowsまたはSolarisなどのホスト・オペレーティング・システムから提供されるネイティブ・インプット・メソッドを使うことができるほか、Javaプログラミング言語で記述されたインプット・メソッドを実装して使うこともできます。

インプット・メソッドという用語は、Javaプログラミング言語のクラス・メソッドを指しているのではありません。

Swingでのインプット・メソッドのサポート

Swingテキスト・コンポーネントは、インプット・メソッドを使用したテキスト入力のための統合ユーザー・インタフェースを提供します。ロケールに応じて、オンザスポットまたはビロウザスポット入力方式が使用されます。ほとんどのロケールで使用されているオンザスポット(インライン)入力方式の場合、インプット・メソッドはテキストを入力している間テキストをテキスト・コンポーネントに直接挿入します。中国語圏のロケールで使用されているビロウザスポット入力方式の場合は、独立した変換ウィンドウが使用されます。このウィンドウは、確定したテキストの挿入位置の近くに自動的に配置されます。

Swingテキスト・コンポーネントを使用するアプリケーションでは、テキスト・コンポーネントとインプット・メソッド間のやり取りを調整する必要はありません。ただし、ドキュメントを保存または印刷する場合など、すべてのテキストの確定が必要な場合は、InputContext.endCompositionを呼び出す必要があります。

Input Method Framework

Input Method Frameworkは、テキスト編集時に、テキスト編集コンポーネントとインプット・メソッドの間の共同作業を可能にします。このフレームワークを使用するのは、テキスト編集コンポーネントまたはインプット・メソッドを開発するプログラマです。その他のアプリケーション開発者は、通常はほとんど使用しません。たとえば、ドキュメントを保存または印刷する場合など、すべてのテキストの確定が必要な場合は、InputContext.endCompositionを呼び出す必要があります。

3 サポートされるエンコーディング

java.io.InputStreamReader、java.io.OutputStreamWriter、java.lang.String、およびjava.nio.charsetパッケージのクラスを使用すると、Unicodeとその他のいくつかの文字エンコーディング間の変換を行うことができます。サポートされるエンコーディングは、Java Platform, Standard Edition 9 (Java SE 9)の実装によって異なります。Java SE 9の各実装によるサポートが必要なエンコーディングの一覧は、java.nio.charset.Charsetのクラスの説明を参照してください。

次の各表は、Oracle Java SE 9でサポートされているエンコーディング・セットを示します。java.nio APIで使用される正準名は、多くの場合、java.io APIおよびjava.lang APIで使用される名前とは異なります。

基本エンコーディング・セット(java.baseモジュールに含まれる)

java.nio API用の正準名

java.io APIとjava.lang API用の正準名

説明

IBM00858

Cp858

Cp850の拡張機能でユーロ文字を含む

IBM437

Cp437

MS-DOS米国、オーストラリア、ニュージーランド、南アフリカ

IBM775

Cp775

PCバルト諸語

IBM850

Cp850

MS-DOSラテン文字-1

IBM852

Cp852

MS-DOSラテン文字-2

IBM855

Cp855

IBMキリル文字

IBM857

Cp857

IBMトルコ語

IBM862

Cp862

PCヘブライ語

IBM866

Cp866

MS-DOSロシア語

ISO-8859-1

ISO8859_1

ISO -8859-1、ラテン・アルファベットNo. 1

ISO-8859-2

ISO8859_2

ラテン・アルファベットNo. 2

ISO-8859-4

ISO8859_4

ラテン・アルファベットNo. 4

ISO-8859-5

ISO8859_5

ラテン/キリル文字アルファベット

ISO-8859-7

ISO8859_7

ラテン/ギリシャ文字アルファベット(ISO-8859-7:2003)

ISO-8859-9

ISO8859_9

ラテン・アルファベットNo. 5

ISO-8859-13

ISO8859_13

ラテン・アルファベットNo. 7

ISO-8859-15

ISO8859_15

ラテン・アルファベットNo. 9

KOI8-R

KOI8_R

KOI8-R、ロシア語

KOI8-U

KOI8_U

KOI8-U、ウクライナ語

US-ASCII

ASCII

米国の情報交換標準コード

UTF-8

UTF8

8ビットUnicode (UCS) Transformation Format

UTF-16

UTF-16

16ビットUnicode (UCS) Transformation Format、オプションのバイト順マークによって識別されるバイト順

UTF-16BE

UnicodeBigUnmarked

16ビットUnicode (UCS) Transformation Format、ビッグエンディアン・バイト順

UTF-16LE

UnicodeLittleUnmarked

16ビットUnicode (UCS) Transformation Format、リトルエンディアン・バイト順

UTF-32

UTF_32

32ビットUnicode (UCS) Transformation Format、オプションのバイト順マークによって識別されるバイト順

UTF-32BE

UTF_32BE

32ビットUnicode (UCS) Transformation Format、ビッグエンディアン・バイト順

UTF-32LE

UTF_32LE

32ビットUnicode (UCS) Transformation Format、リトルエンディアン・バイト順

x-UTF-32BE-BOM

UTF_32BE_BOM

32ビットUnicode (UCS) Transformation Format、ビッグエンディアン・バイト順、バイト順マーク付き

x-UTF-32LE-BOM

UTF_32LE_BOM

32ビットUnicode (UCS) Transformation Format、リトルエンディアン・バイト順、バイト順マーク付き

windows-1250

Cp1250

Windows東欧

windows-1251

Cp1251

Windowsキリル文字

windows-1252

Cp1252

Windowsラテン文字-1

windows-1253

Cp1253

Windowsギリシャ文字

windows-1254

Cp1254

Windowsトルコ語

windows-1257

Cp1257

Windowsバルト諸語

該当なし

UnicodeBig

16ビットUnicode (UCS) Transformation Format、ビッグエンディアン・バイト順、バイト順マーク付き

x-IBM737

Cp737

PCギリシャ文字

x-IBM874

Cp874

IBMタイ

x-UTF-16LE-BOM

UnicodeLittle

16ビットUnicode (UCS) Transformation Format、リトルエンディアン・バイト順、バイト順マーク付き

拡張エンコーディング・セット(jdk.charsetsモジュールに含まれる)

java.nio API用の正準名

java.io APIとjava.lang API用の正準名

説明

Big5

Big5

Big5、中国語(繁体字)

Big5-HKSCS

Big5_HKSCS

Big5 (香港の拡張付き)、中国語(繁体字、2001改訂を組み込み)

EUC-JP

EUC_JP

JISX 0201、0208、0212、EUCエンコーディング、日本語

EUC-KR

EUC_KR

KS C 5601、EUCエンコーディング、韓国語

GB18030

GB18030

中国語(簡体字)、中華人民共和国標準

GB2312

EUC_CN

GB2312、EUCエンコーディング、中国語(簡体字)

GBK

GBK

GBK、中国語(簡体字)

IBM-Thai

Cp838

IBMタイ拡張SBCS

IBM01140

Cp1140

Cp037の拡張機能でユーロ文字を含む

IBM01141

Cp1141

Cp273の拡張機能でユーロ文字を含む

IBM01142

Cp1142

Cp277の拡張機能でユーロ文字を含む

IBM01143

Cp1143

Cp278の拡張機能でユーロ文字を含む

IBM01144

Cp1144

Cp280の拡張機能でユーロ文字を含む

IBM01145

Cp1145

Cp284の拡張機能でユーロ文字を含む

IBM01146

Cp1146

Cp285の拡張機能でユーロ文字を含む

IBM01147

Cp1147

Cp297の拡張機能でユーロ文字を含む

IBM01148

Cp1148

Cp500の拡張機能でユーロ文字を含む

IBM01149

Cp1149

Cp871の拡張機能でユーロ文字を含む

IBM037

Cp037

米国、カナダ(2か国語、フランス語)、オランダ、ポルトガル、ブラジル、オーストラリア

IBM1026

Cp1026

IBMラテン文字-5、トルコ

IBM1047

Cp1047

ラテン文字-1 (EBCDICホスト用)

IBM273

Cp273

IBMオーストリア、ドイツ

IBM277

Cp277

IBMデンマーク、ノルウェー

IBM278

Cp278

IBMフィンランド、スウェーデン

IBM280

Cp280

IBMイタリア

IBM284

Cp284

IBMカタロニア語/スペイン、スペイン語圏ラテン・アメリカ

IBM285

Cp285

IBM英国、アイルランド

IBM290

Cp290

EBCDIC-JP-kana、日本語EBCDIC

IBM297

Cp297

IBMフランス

IBM300

Cp300

Japan DB EBCDIC、日本語EBCDIC

IBM420

Cp420

IBMアラビア語

IBM424

Cp424

IBMヘブライ語

IBM500

Cp500

EBCDIC 500V1

IBM860

Cp860

MS-DOSポルトガル語

IBM861

Cp861

MS-DOSアイスランド語

IBM863

Cp863

MS-DOSカナダ系フランス語

IBM864

Cp864

PCアラビア語

IBM865

Cp865

MS-DOS北欧

IBM868

Cp868

MS-DOSパキスタン

IBM869

Cp869

IBM近代ギリシャ語

IBM870

Cp870

IBM多言語ラテン文字-2

IBM871

Cp871

IBMアイスランド

IBM918

Cp918

IBMパキスタン(ウルドゥー語)

ISO-2022-CN

ISO2022CN

ISO 2022 CN形式のGB2312およびCNS11643、簡体字および繁体字中国語(Unicodeへの変換のみ)

ISO-2022-JP

ISO2022JP

ISO 2022形式のJIS X 0201、0208、日本語

ISO-2022-KR

ISO2022KR

ISO 2022 KR、韓国語

ISO-8859-3

ISO8859_3

ラテン・アルファベットNo. 3

ISO-8859-6

ISO8859_6

ラテン/アラビア語アルファベット

ISO-8859-8

ISO8859_8

ラテン/ヘブライ語アルファベット

JIS_X0201

JIS_X0201

JIS X 0201

JIS_X0212-1990

JIS_X0212-1990

JIS X 0212

Shift_JIS

SJIS

Shift-JIS、日本語

TIS-620

TIS620

TIS620、タイ

windows-1255

Cp1255

Windowsヘブライ語

windows-1256

Cp1256

Windowsアラビア語

windows-1258

Cp1258

Windowsベトナム語

windows-31j

MS932

Windows日本語

x-Big5-Solaris

Big5_Solaris

Big5 (Solaris zh_TW.BIG5ロケール用の7つの追加Hanzi表意文字マッピング付き)

x-euc-jp-linux

EUC_JP_LINUX

JISX 0201、0208、EUCエンコーディング、日本語

x-EUC-TW

EUC_TW

CNS11643 (Plane 1-7,15)、EUCエンコーディング、中国語(繁体字)

x-eucJP-Open

EUC_JP_Solaris

JISX 0201、0208、0212、EUCエンコーディング、日本語

x-IBM1006

Cp1006

IBM AIXパキスタン(ウルドゥー語)

x-IBM1025

Cp1025

IBM多言語キリル文字: ブルガリア、ボスニア、ヘルツェゴビナ、マケドニア(旧ユーゴスラビア・マケドニア共和国)

x-IBM1046

Cp1046

IBMアラビア語 - Windows

x-IBM1097

Cp1097

IBMイラン(現代ペルシャ語)/ペルシャ語

x-IBM1098

Cp1098

IBMイラン(現代ペルシャ語)/ペルシャ語(PC)

x-IBM1112

Cp1112

IBMラトビア、リトアニア

x-IBM1122

Cp1122

IBMエストニア

x-IBM1123

Cp1123

IBMウクライナ

x-IBM1124

Cp1124

IBM AIXウクライナ

x-IBM1381

Cp1381

IBM OS/2、DOS中国(中華人民共和国)

x-IBM1383

Cp1383

IBM AIX中国(中華人民共和国)

x-IBM33722

Cp33722

IBM-eucJP - 日本語(5050のスーパー・セット)

x-IBM834

Cp834

IBM EBCDIC DBCS専用韓国語

x-IBM856

Cp856

IBMヘブライ語

x-IBM875

Cp875

IBMギリシャ語

x-IBM921

Cp921

IBMラトビア、リトアニア(AIX、DOS)

x-IBM922

Cp922

IBMエストニア(AIX、DOS)

x-IBM930

Cp930

UDC 4370文字を含む日本語カタカナ漢字、5026のスーパー・セット

x-IBM933

Cp933

UDC 1880文字を含む韓国語、5029のスーパー・セット

x-IBM935

Cp935

UDC 1880文字を含む簡体字中国語ホスト、5031のスーパー・セット

x-IBM937

Cp937

UDC 6204文字を含む繁体字中国語ホスト、5033のスーパー・セット

x-IBM939

Cp939

UDC 4370文字を含む日本語ラテン文字漢字、5035のスーパー・セット

x-IBM942

Cp942

IBM OS/2日本語、Cp932のスーパー・セット

x-IBM942C

Cp942C

Cp942の拡張機能

x-IBM943

Cp943

IBM OS/2日本語、Cp932およびShift-JISのスーパー・セット

x-IBM943C

Cp943C

Cp943の拡張機能

x-IBM948

Cp948

OS/2中国語(台湾)、938のスーパー・セット

x-IBM949

Cp949

PC韓国語

x-IBM949C

Cp949C

Cp949の拡張機能

x-IBM950

Cp950

PC中国語(香港、台湾)

x-IBM964

Cp964

AIX中国語(台湾)

x-IBM970

Cp970

AIX韓国語

x-ISCII91

ISCII91

インド語派ISCII91エンコーディング

x-ISO2022-CN-CNS

ISO2022_CN_CNS

ISO 2022 CN形式のCNS11643、繁体字中国語(Unicodeからの変換のみ)

x-ISO2022-CN-GB

ISO2022_CN_GB

ISO 2022 CN形式のGB2312、簡体字中国語(Unicodeからの変換のみ)

x-iso-8859-11

x-iso-8859-11

ラテン/タイ語アルファベット

x-JIS0208

x-JIS0208

JIS X 0208

x-JISAutoDetect

JISAutoDetect

Shift-JIS、EUC-JP、ISO 2022 JPの検出および変換(Unicodeへの変換のみ)

x-Johab

x-Johab

韓国語、Johab文字セット

x-MacArabic

MacArabic

Macintoshアラビア語

x-MacCentralEurope

MacCentralEurope

Macintoshラテン文字-2

x-MacCroatian

MacCroatian

Macintoshクロアチア語

x-MacCyrillic

MacCyrillic

Macintoshキリル文字

x-MacDingbat

MacDingbat

Macintosh Dingbat

x-MacGreek

MacGreek

Macintoshギリシャ語

x-MacHebrew

MacHebrew

Macintoshヘブライ語

x-MacIceland

MacIceland

Macintoshアイスランド語

x-MacRoman

MacRoman

Macintosh Roman

x-MacRomania

MacRomania

Macintoshルーマニア

x-MacSymbol

MacSymbol

Macintoshシンボル

x-MacThai

MacThai

Macintoshタイ

x-MacTurkish

MacTurkish

Macintoshトルコ語

x-MacUkraine

MacUkraine

Macintoshウクライナ

x-MS950-HKSCS

MS950_HKSCS

Windows繁体字中国語(香港の拡張付き)

x-mswin-936

MS936

Windows簡体字中国語

x-PCK

PCK

Solaris版のShift_JIS

x-SJIS_0213

x-SJIS_0213

Shift_JISX0213

x-windows-50220

Cp50220

Windows Codepage 50220 (7ビット実装)

x-windows-50221

Cp50221

Windows Codepage 50221 (7ビット実装)

x-windows-874

MS874

Windowsタイ語

x-windows-949

MS949

Windows韓国語

x-windows-950

MS950

Windows繁体字中国語

x-windows-iso2022jp

x-windows-iso2022jp

拡張ISO-2022-JP (MS932ベース)

4 サポートされるカレンダ

日時APIの基本は、java.timeパッケージです。java.timeで定義されているクラスはISOカレンダのカレンダ・システムの基盤であり、世界標準の日付と時間の表現形式です。ISOカレンダは先発グレゴリオ暦の規則に従っています。java.time.chronoパッケージには、和暦、ヒジュラ暦、民国暦およびタイ仏暦などのISO以外のカレンダも事前定義されています。日時APIの詳細は、Javaチュートリアルの国際化の学習に関する項を参照してください。

5 サポートされるフォント

サポートされているフォントのセットは、Javaプラットフォームの実装によって異なります。ここで使用されている用語については、Fontクラスに関する説明を参照してください。

- 物理フォントのサポート

- 論理フォントのサポート

- Lucidaフォント

物理フォントのサポート

JREは、TrueTypeフォントとPostScript Type 1フォントをサポートしています。

物理フォントは、Java実行環境で認識されている場所にインストールされている必要があります。JREでは、JRE内のlib/fontsディレクトリと、ホスト・オペレーティング・システムで定義されている通常のフォント格納先が検索されます。両方の場所に同じ名前のフォントが存在する場合は、lib/fontsディレクトリのフォントが使用されます。

ホスト・オペレーティング・システムによってサポートされている方法で物理フォントをインストールすると、サポートされているフォント技術を使用する物理フォントを追加できます。SolarisまたはLinuxでユーザー別のフォントを追加する場合に推奨される格納先は$HOME/.fontsディレクトリで、これはプラットフォームのlibfontconfigによって検索され、JREで使用されます。

JDK 9以降、サポートされていないため、JRE内のlibディレクトリに変更を加えないでください。

論理フォントのサポート

論理フォント名は、実装に依存した方法で物理フォントにマッピングされます。一般に、1つの論理フォント名は、広範囲の文字をカバーするために複数の物理フォント名に割り当てられます。JREでは、フォント構成ファイルを使用してマッピングを定義します。「フォント構成ファイル」を参照してください。

Lucidaフォント

Oracle JREには、Lucidaデザイン・ファミリの物理フォントがいくつか含まれています。これらのフォントは物理フォントですが、JREに付属しているため、ホスト・オペレーティング・システムには依存しません。これらのフォントは、Javaプラットフォームのほかの実装でも使用できるようライセンス付与されています。これらのフォントを使用すると、様々なプラットフォームや実装、広範囲な言語にわたって一貫したルック・アンド・フィールと操作性が得られるという利点があります。

タイプ・ファミリとしては、"Lucida Sans"、"Lucida Sans Typewriter"、および"Lucida Bright"の3つがあります。各ファミリに、プレーン、ボールド、イタリック、および太字イタリックのスタイルがあります。これらのフォントすべてがJREのすべての実装に存在するわけではありません。たとえば、Windows版JREのデフォルトのダウンロード・バンドルには、Lucida Sansプレーン・フォントのみが含まれています(ただし、アプリケーション開発者は、アプリケーションとともに再配布するJREにすべてのLucidaフォントを含めることもできます)。

次の表に、各フォント・ファミリが対応しているUnicode文字ブロックを示します。

Unicodeブロック

Lucida Sans

Lucida Sans Typewriter

Lucida Bright

基本ラテン

はい

はい

はい

ラテン1補助

はい

はい

はい

ラテン拡張A

はい

はい

はい

ラテン拡張B

一部

一部

一部

IPA拡張

一部

いいえ

いいえ

スペース調整文字

一部

一部

一部

結合分音記号

一部

いいえ

一部

ギリシャ語

はい

はい

はい

キリル文字

一部

一部

一部

ヘブライ語

はい

はい

いいえ

アラビア語

一部

一部

一部

デーバナーガリー文字

はい

いいえ

いいえ

タイ語

はい

はい

いいえ

一般句読点

一部

一部

一部

上付き文字と下付き文字

一部

一部

一部

通貨記号

一部

一部

一部

文字様記号

一部

一部

一部

数字の形

一部

一部

いいえ

矢印

一部

一部

一部

数学演算子

はい

一部

はい

囲み英数字

一部

いいえ

いいえ

罫線素片

一部

一部

いいえ

ブロック要素

一部

一部

いいえ

幾何学模様

一部

一部

一部

その他の記号

一部

一部

いいえ

装飾記号

はい

いいえ

いいえ

アルファベット表示形

一部

一部

いいえ

アラビア表示形A

一部

一部

一部

アラビア表示形B

はい

はい

はい

JREで通常完全にサポートされている書記体系のうち、中国語(簡体字)、中国語(繁体字)、日本語、および韓国語はLucidaフォントでサポートされません。JDK 9およびJRE 9でサポートされるロケールに関するページを参照してください。

フォントは、Java SE Runtime Environmentのlib/fontsディレクトリに、次のようなファイルとしてインストールされています(すべてインストールされているとはかぎりません)。

LucidaSansDemiBold.ttf
LucidaSansRegular.ttf
LucidaTypewriterBold.ttf
LucidaTypewriterRegular.ttf
LucidaBrightDemiBold.ttf
LucidaBrightDemiItalic.ttf
LucidaBrightItalic.ttf
LucidaBrightRegular.ttf

6 フォント構成ファイル

Javaプラットフォームでは、すべての実装でサポートが求められる5つの論理フォント名(Serif、SansSerif、Monospaced、Dialog、DialogInput)が定義されています。論理フォント名は、実装に依存した方法で、物理フォントにマッピングされます。

Oracle JDKが論理フォント名と物理フォントをマップするには、font configurationファイルを使用します。ホスト・オペレーティング・システムのバージョンに応じて異なるマッピングをサポートする複数のファイルが存在する場合があります。ファイルは、JDKインストールで配布されます。ユーザーはフォント構成ファイルを変更したり新規に作成したりすることで、特定のシステム設定に応じてマッピングを調整できますが、これらのファイルはconf/fontsに配置する必要があり、次に説明する実装上の注意事項を考慮します。

フォント構成ファイルには2つの形式があります。プロパティ形式とバイナリ形式です。プロパティ形式については、このドキュメントで詳しく説明します。この形式は、ユーザー定義の構成のために使用できます。バイナリ形式については、ドキュメントが用意されておらず、JDKの事前定義済の構成に対してのみ使用されます。参照用に、それらの構成に対応するプロパティ形式のファイルが、.properties.srcという拡張子のファイルとして用意されています。

サポートされるプラットフォーム

フォント構成ファイルは実装に依存しています。Javaプラットフォームのすべての実装でこのファイルが使用されるわけではありません。また、その内容と形式は実行環境やリリースの違いによって異なります。macOS実装はフォント構成ファイルを使用しません。これは、マッピングがソース内でハードコードされていて、変更できないためです。

Oracle JDKのホスト・オペレーティング・システムでのフォント構成ファイルのサポートは、次のとおりです。

- Windowsの場合、フォント構成ファイルが必要です。

- macOSの場合、フォント構成ファイルはサポートされていません。

- LinuxおよびSolarisの場合: Oracle JDKでは、Linuxプラットフォームでカスタム・フォント構成ファイルの提供がサポートされなくなります。これは、配布やバージョン間で最新に保つことが困難なためです。システム上でフォントを制御する配布では、引き続き、このカスタム・ファイルを提供できます。JREでは、配布に正確に一致するカスタム・ファイルを検出した場合、これを使用します。完全一致するものが見つからない場合、JREでは実行時にファイルを動的に作成します。生成したこれらのファイルは、実装で決定された場所に配置されます。これらは内部的な実装とみなす必要があります。つまり、これらはユーザーが編集できるものではなく、この仕様で説明されている構文に従っていません。

フォント構成ファイルのロード

JDKでは、提供するすべてのファイルを$JDKHOME/libに配置します。この場所は変更しないでください。かわりに、構成ファイルの更新またはカスタム・バージョンは$JDKHOME/conf/fontsに配置されます。

フォント構成ファイルをサポートしているプラットフォームでは、ランタイムは$JDKHOME/conf/fontsを最初に検索します。つまり、ユーザーによって提供されたファイルが一致すると、これが優先されます。

ホスト・オペレーティング・システム用のフォント構成ファイルは、次のように特定されます。

- JavaHome - JDKのディレクトリ。java.homeシステム・プロパティで指定される。

- OS - オペレーティング・システムの種類を識別する文字列。

- Windowsの場合、空白。

- Solarisの場合、空白。

- Linuxの場合、"RedHat"、"SuSE"など。

- Version - オペレーティング・システムのバージョンを識別する文字列。

ランタイムでは、次のファイルのうち、最初に見つかったものが使用されます。

JavaHome/lib/fontconfig.OS.Version.properties
JavaHome/lib/fontconfig.OS.Version.bfc
JavaHome/lib/fontconfig.OS.properties
JavaHome/lib/fontconfig.OS.bfc
JavaHome/lib/fontconfig.Version.properties
JavaHome/lib/fontconfig.Version.bfc
JavaHome/lib/fontconfig.properties
JavaHome/lib/fontconfig.bfc

.propertiesという拡張子のファイルは、Propertiesクラスで指定されるプロパティ・ファイルとみなされ、そのクラスによってロードされます。その拡張子のないファイルは、バイナリ形式と見なされます。

フォント構成ファイル内で使用される名前

フォント構成ファイル全体で、さまざまな名前が使用されます。

- LogicalFontName - 5つの論理フォント名serif、sansserif、monospaced、dialog、およびdialoginputのいずれか。フォント構成ファイルでは、これらの名前はすべて小文字で記述される。

- StyleName - 4つの標準フォント・スタイルplain、bold、italic、およびbolditalicのいずれか。この場合も、すべて小文字で表される。

- PlatformFontName - プラットフォームで一般的に使用される形式の物理フォント名。

- Windowsでは、"Courier New"や"\uad74\ub9bc"のようなフォント・フェース名。

- SolarisおよびLinuxでは、"-monotype-times new roman-regular-r---*-%d-*-*-p-*-iso8859-1"のようなxlfd名。"%d"はフォント・サイズを示し、実際のフォント・サイズが実行時に挿入される。

- CharacterSubsetName - 特定のコンポーネント・フォントでレンダリングできるUnicode文字セットのサブセット名。Windowsに対して事前に定義されている名前は、alphabetic、arabic、chinese-ms936、chinese-gb18030、chinese-ms950、chinese-hkscs、cyrillic-iso8859-5、cyrillic-cp1251、cyrillic-koi8-r、devanagari、dingbats、greek、hebrew、japanese、korean、latin、symbol、thaiです。SolarisおよびLinuxに対して事前に定義されている名前は、arabic、chinese-gb2312、chinese-gbk、chinese-gb18030-0、chinese-gb18030-1、chinese-cns11643-1、chinese-cns11643-2、chinese-cns11643-3、chinese-big5、chinese-hkscs、cyrillic、devanagari、dingbats、greek、hebrew、japanese-x0201、japanese-x0208、japanese-x0212、korean、korean-johab、latin-1、latin-2、latin-4、latin-5、latin-7、latin-9、symbol、thaiです。フォント構成ファイルでは、追加の文字サブセットを識別するために、サブセット名を追加して定義することができます。

- Encoding - デフォルト・エンコーディングの正準名。java.nio.charset.Charset.defaultCharset().name()により返される名前。

- Language - 初期のデフォルト・ロケールの言語。

- Country - 初期のデフォルト・ロケールの国名。

すべてのプラットフォームに共通のプロパティ

すべてのプラットフォームに適用可能なプロパティを使用すると、フォント構成の形式のバージョン、コンポーネント・フォントのマッピング、検索順序、除外範囲、プロポーショナル・フォント、フォント・ファイル名および追加のフォント・パスを指定できます。

バージョン・プロパティ

バージョン・プロパティは、フォント構成の形式のバージョンを識別するものです。このドキュメントで規定しているのは、バージョン1です。

完全なプロパティの形式は次のとおりです。

version=1

コンポーネント・フォントのマッピング

コンポーネント・フォントのマッピングのプロパティでは、特定の文字サブセットの文字を、特定のスタイルの特定の論理フォントでレンダリングするときに使用する物理フォントを指定します。

キーの形式は次のとおりです。

allfonts.CharacterSubsetName
LogicalFontName.StyleName.CharacterSubsetName

第1の形式は、論理フォントやスタイルとは無関係に、同じフォントを文字サブセットに使用する場合に利用します。この場合、フォント・レンダリング・エンジンは、アルゴリズム的にスタイルをフォントに適用します。第2の形式は、異なる論理フォントおよびスタイルごとに、別々の物理フォントを文字サブセットに使用する場合に利用します。この形式では、論理フォントとスタイルの組合せそれぞれについてプロパティを指定する必要があるため、1つの文字サブセットに対して20のプロパティを指定することになります。ある文字サブセットに対して第1の形式のプロパティが指定されている場合、同じ文字サブセットに対して第2の形式のプロパティが指定されていても無視されます。

値は、「フォント構成ファイル内で使用される名前」で説明されているように、プラットフォーム・フォント名です。

各種フォントによってサポートされる文字サブセットは重複することが多いので、文字をレンダリングする際に使用するフォントの順序を定義するために、別の検索順序プロパティを使用します。

検索順序

Javaランタイムでは、5つの論理フォントの検索順序を判別するためにsequenceプロパティが使用されます。ただし、フォント構成ファイルでは、エンコーディング、言語、国の特定の組合せに対してプロパティを指定できます。その場合、ランタイムでは、各論理フォントのsequenceプロパティを参照して順序が判別されます。

キーの形式は次のとおりです。

sequence.allfonts.Encoding.Language.Country
sequence.LogicalFontName.Encoding.Language.Country
sequence.allfonts.Encoding.Language
sequence.LogicalFontName.Encoding.Language
sequence.allfonts.Encoding
sequence.LogicalFontName.Encoding
sequence.allfonts
sequence.LogicalFontName

allfontsの形式は、5つの論理フォントすべてに対して順序を使用する場合に利用します。論理フォント名を指定する形式は、異なる論理フォントに対し異なる順序を使用する場合に利用します。

各論理フォントについて、Javaランタイムでは、上記のキーのうち最初に登場するプロパティ値が使用されます。このプロパティにより、論理フォントの主検索順序が決まります。

このファイルでは、1つの代替検索順序を定義することもできます。代替sequenceプロパティのキーの形式は次のとおりです。

sequence.fallback

すべてのsequenceプロパティの値は、次の形式で指定します。

SearchSequenceValue:
CharacterSubsetName
CharacterSubsetName , SearchSequenceValue

主sequenceプロパティでは、必須フォントの文字サブセット名を指定します。AWTおよび2Dのフォント・レンダリングではどちらも、これらのフォントが使用されます。代替sequenceプロパティでは、オプション・フォントの文字サブセット名を指定します。これらのフォントはすべての論理フォントの代替として使用されますが、2Dのフォント・レンダリングの場合のみです。ランタイムでは、Lucida Sans Regularフォントが2Dレンダリング用の代替フォントとして自動的に追加されます(まだ指定されていない場合)。また、実行環境にlib/fonts/fallbackディレクトリが存在し、そのディレクトリに有効なTrueTypeフォントまたはType 1フォントが含まれている場合は、それらのフォントが2Dレンダリング用の代替フォントとして自動的に追加されます。Windowsでは、システムEUDC (End User Defined Characters)フォントがWindowsに登録されている場合、そのフォントも2Dレンダリング用の代替フォントとして自動的に追加されます。

sequenceプロパティにより、特定の文字をレンダリングするために、コンポーネント・フォントをどのような順序で使用するかが決まります。たとえば、次のようなプロパティを指定したとします。

sequence.monospaced=japanese,alphabetic
sequence.fallback=korean
monospaced.plain.alphabetic=Arial
monospaced.plain.japanese=MSGothic
monospaced.plain.korean=Gulim

ランタイムでは、まず、MSGothicフォントを使用して文字をレンダリングしようとします。そのフォントがその文字のグリフを提供していない場合は、Arialフォントを試します。2Dレンダリングでは、さらに、GulimフォントとLucida Sans Regularフォントのほか、ランタイムのlib/fonts/fallbackディレクトリにあるTrueTypeフォントまたはType 1フォントも試します。Windows上での2Dレンダリングでは、システムEUDCフォントがWindowsに登録されている場合、そのEUDCフォントも試します。

文字列を参照せずに論理フォントのフォント・メトリックスを計算する場合には、必須フォントのみが考慮に入れられます。たとえば、前述の例であれば、FontMetrics.getMaxDescentメソッドはMSGothicフォントとArialフォントに基づいて結果を返します。GulimフォントとLucida Sansフォントは考慮に入れられません。このため、ボタンなど、単純なユーザー・インタフェース要素(フォント・メトリックに基づいて要素のサイズが計算されることがある)は、その要素が通常は使用しないコンポーネント・フォントを含む拡張リストから影響を受けることはありません。一方、テキスト・コンポーネントでは、通常実際に表示するテキストに基づいてメトリックを計算するため、正しい結果が得られます。

5つの論理フォントについてランタイムが取得するsequenceプロパティは、同じ文字サブセットを列挙している必要がありますが、文字セット列挙する順序は異なっていてもかまいません。

除外範囲

除外範囲プロパティでは、特定の文字サブセットに対応するフォントによるレンダリングの対象から除外するUnicode文字の範囲を指定します。このプロパティは、(パフォーマンス上の理由などで)多数の文字をサポートしているフォントを早い検索順位に置く必要があるが、そのフォントがサポートしている文字の一部を別のフォントで描画する必要がある場合に使用します。このプロパティはオプションで、指定できるのは文字サブセットあたり1つまでです。

キーの形式は次のとおりです。

exclusion.CharacterSubsetName

値の形式は次のとおりです。

ExclusionRangeValue:
Range
Range , ExclusionRangeValue

Range:
Char - Char

Char:
HexDigit HexDigit HexDigit HexDigit
HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit

Charは、Unicode文字を16進数として表現したものです。

プロポーショナル・フォント

プロポーショナル・フォント・プロパティでは、同じフォントのプロポーショナル版と非プロポーショナル版の関係を記述します。このプロパティは、GraphicsEnvironment.preferProportionalFontsメソッドで指定する設定を実装するために使用されます。

キーの形式は次のとおりです。

proportional.PlatformFontName

プラットフォーム・フォント名に含まれている空白文字は、アンダースコア(_)に置き換える必要があります。

値の形式は次のとおりです。

PlatformFontName

値の指定では、空白文字は元のまま残します。

各プロパティは、値として指定したフォントがキーに指定したフォントのプロポーショナル版であることと、キーに指定したフォントが値として指定したフォントの非プロポーショナル版であることを示します。

フォント・ファイル名

フォント・ファイル名のプロパティは、フォント構成ファイルで使用される物理フォントを格納しているファイルの名前を指定します。Windowsでは、すべての物理フォントについてファイル名の指定が必須です。SolarisおよびLinuxでは、すべての物理フォントについてファイル名の指定が推奨されています。

キーの形式は次のとおりです。

filename.PlatformFontName

プラットフォーム・フォント名に含まれている空白文字は、アンダースコア(_)に置き換える必要があります。

値は、フォントを格納しているファイルのファイル名です。Windowsでは、単純なファイル名を指定します。そのため、実行環境では、まず自身のlib/fontsディレクトリから各ファイルが検索され、次にWindowsのフォント・ディレクトリから検索されます。SolarisおよびLinuxでは、絶対パス名、実行環境のlib/fontsディレクトリを表す"$JRE_LIB_FONTS"で始まるパス名、またはxlfd名を使用します。

追加のフォント・パス

Javaランタイムでは、ランタイムのlib/fontsディレクトリや、Windowsのフォント・フォルダなど、フォント・ファイルが格納されているいくつかのディレクトリを自動的に判別できます。このフォント・パスに追加するため、追加のディレクトリを指定することができます。

キーの形式は次のとおりです。

appendedfontpath

値の形式は次のとおりです。

AppendedFontPathValue:
Directory
Directory PathSeparator AppendedFontPathValue

パス区切り文字は、プラットフォームに依存するjava.io.File.pathSeparatorの値です。

Windows用のプロパティ

Windowsでは、プラットフォーム固有のプロパティはありません。ただし、検索順序の指定に使用する、特別な形式の文字サブセット名があります。「alphabetic」という文字サブセット名に、そのサブセットに関連付ける文字エンコーディングを示す接尾辞を付けることができます。

alphabetic
alphabetic/default
alphabetic/1252

この情報は、AWTでのみ使用され、2Dでは使用されません。/defaultという接尾辞を指定すると、この文字サブセットに対するコンポーネント・フォントの使用が、デフォルト・エンコーディングの文字セットに限定されます。また、/1252という接尾辞を指定すると、Windows-1252文字セットに限定されます。コンポーネント・フォントのマッピングと除外範囲にアクセスするには、文字エンコーディングの接尾辞を省略します。これ以外のすべての文字サブセットについて、AWTの文字エンコーディングは、Javaランタイムによって内部的に判別されます。

SolarisおよびLinux用のプロパティ

SolarisおよびLinuxに固有の唯一のプロパティはAWTフォント・パスであり、これはX11サーバー・フォント・パスに追加する必要のあるプラットフォーム・ディレクトリを指定します。

キーの形式は次のとおりです。

awtfontpath.CharacterSubsetName

値の形式は次のとおりです。

AWTFontPathValue:
Directory
Directory : AWTFontPathValue

指定するディレクトリは、有効なX11フォント・ディレクトリであることが必要です。Javaランタイムは、検索順序の参照で見つかる主検索順序に含まれるすべての文字サブセットのディレクトリが、確実にX11フォント・パスに組み込まれるようにします(「検索順序」を参照)。実装では、同じエンコーディング、言語、国が設定されている特定の環境について、すべての論理フォントが同じ一式の文字サブセットを使用することを前提としています。

Oracleの法律上の注意点

コピーライト

Copyright © 1994-2017, Oracle and/or its affiliates. All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

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 Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

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およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

Pre-General Availability (一般提供前)版のドキュメントについて

このドキュメントがPre-General Availability (一般提供前)版の場合:

このドキュメントはPre-General Availability (一般提供前)版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のPre-General Availability (一般提供前)版のドキュメントについて

このドキュメントが非公開のPre-General Availability (一般提供前)版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のPre-General Availability Trial Agreement (Pre-GAトライアル契約)のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle Partner Network Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティ

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、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)を参照してください。