| ファイル名拡張子 |
.プロパティ |
|---|---|
| インターネットメディアの種類 | テキスト/プレーン |
.propertiesは、主にJava関連のテクノロジでアプリケーションの設定可能なパラメータを保存するために使われるファイルのファイル拡張子です。国際化やローカリゼーションのための文字列を保存するためにも使用できます。これらはプロパティ リソース バンドルと呼ばれます。
各パラメータは文字列のペアとして保存され、1 つにはパラメータの名前 (キーと呼ばれる) が保存され、もう 1 つには値が格納されます。
多くの一般的なファイル形式とは異なり、.properties ファイルにはRFCがなく、仕様ドキュメントも必ずしも明確ではありません。これは、形式が単純であるためと考えられます。
形式
.properties ファイルの各行には通常、1 つのプロパティが格納されます。各行にはkey=value、、、、など、いくつかの形式が可能です。一重引用符または二重引用符は文字列の一部とみなされます。末尾のスペースはkey = value重要であり、コンシューマーの必要に応じて切り取られるものとみなされます。
key:valuekey value
.properties ファイル内のコメント行は、最初の非空白文字として番号記号(#) または感嘆符(!)で示され、その行の残りのテキストはすべて無視されます。バックスラッシュは文字をエスケープするために使用されます。プロパティ ファイルの例を以下に示します。
# 「.properties」ファイル内のコメントを読んでいます。
! 感嘆符 ('!') はコメントにも使用できます。
# コメントは無視されます。
# 空白行も無視されます。
# 「プロパティ」を含む行には、区切り文字で区切られたキーと値が含まれます。
# 区切り文字は 3 つあります: 等号 ('=')、コロン (':')、空白 (' '、'\t'、'\f')。
ウェブサイト= https://en.wikipedia.org/
言語:英語
トピック.properties ファイル
# 行に単語を入力すると、値のないキーが作成されます。
空の
# キー、区切り文字、値の間にある空白は無視されます。
# これは、次のものが同等であることを意味します (読みやすさを除く)。
こんにちは=こんにちは
こんにちは=こんにちは
# 値を空白で始めるには、バックスラッシュ ('\') でエスケープします。
whitespaceStart = \ <-このスペースは無視されません。
# 同じ名前のキーは、ファイル内で最も遠いキーによって上書きされます。
# たとえば、「duplicateKey」の最終値は「second」になります。
重複キー=最初
重複キー= 2番目
# キー内で区切り文字を使用するには、('\') でエスケープする必要があります。
# ただし、値ではこれを行う必要はありません。
delimiterCharacters \:\=\ =これはキー「delimiterCharacters \:\=\ 」の値です
# 行末にバックスラッシュ ('\') を追加すると、値が次の行に続くことを意味します。
multiline =この行\
続く
# 値にバックスラッシュ ('\') を含める場合は、別のバックスラッシュ ('\') でエスケープする必要があります。
パス= c: \\ wiki \\テンプレート
# つまり、行末のバックスラッシュ ('\') の数が偶数の場合、次の行は値に含まれません。
# 次の例では、「evenKey」の値は「This is on one line\」です。
evenKey =これは1行です\\
# この行は通常のコメントであり、「evenKey」の値には含まれません。
# バックスラッシュ ('\') の数が奇数の場合、次の行が値に含まれます。
# 次の例では、「oddKey」の値は「This is line one and\# This is line two」です。
oddKey =これは1行目であり、\\\
# これは2行目です
# 行頭の空白文字は削除されます。
# 最初の行のバックスラッシュ ('\') の前に必要なスペースを必ず追加してください。
# 次の行の先頭に追加すると削除されます。
# 次の例では、「welcome」の値は「Welcome to Wikipedia!」です。
welcome =ようこそ\
ウィキペディア!
# 改行と復帰を追加する必要がある場合は、それぞれ ('\n') と ('\r') を使用してエスケープする必要があります。
# 読みやすくするために、オプションでタブを ('\t') でエスケープすることもできます。
valueWithEscapes =これは改行\nと復帰\rとタブ\tです。
# Unicode エスケープ文字 (最大 4 桁の 16 進数) も使用できます。
# 次の例では、「encodedHelloInJapanese」の値は「こんにちは」です。
エンコードされたHelloInJapanese = \u 3053 \u 3093 \u 306b \u 3061 \u 306f
# ただし、UTF-8 などのより新しいファイル エンコーディングを使用すると、サポートされている文字を直接使用できます。
hello日本語=こんにちは
上記の例では、
- 行頭(1行目、2行目など)の番号記号(#)と感嘆符(!)は、テキストをコメントとしてマークし、コメントは無視されます。
- 空行(5行目)も無視されます。
- 「website」(8行目)がキーとなり、対応する値は「https://en.wikipedia.org/」となります。
- 44 行目の先頭の空白はすべて除外されます。つまり、キー「welcome」(43 行目)の値は「Welcome to Wikipedia!」であり、「Welcome to Wikipedia !」ではありません。
Java 9より前のバージョンでは、.propertiesファイルのエンコーディングはISO-8859-1(Latin-1とも呼ばれる)でした。すべての非ASCII文字は、 Unicodeエスケープ文字(例:\uHHHH、HHHHはUnicode文字セットの文字の16進インデックス)を使用して入力する必要があります。これにより、.propertiesファイルをローカリゼーションのリソースバンドルとして使用できるようになります。非Latin-1テキストファイルは、 JDKに同梱されているnative2asciiツールを使用するか、バイリンガルローカリゼーション形式から.propertiesエスケープへの変換を管理するpo2prop [1]などのツールを使用して、正しい.propertiesファイルに変換できます。
ISO 8859-1 文字でエンコードされた Java *.properties ファイル内の非 Latin-1 文字に Unicode エスケープ文字を使用する代わりに、Java 1.5 以降で導入された、デフォルトでUTF-8でエンコードされる JDK の XML プロパティ ファイル形式を使用することもできます。[2]
もう一つの選択肢は、カスタムエンコーディングを提供するカスタムコントロールを作成することです。[3]
Java 9以降では、プロパティリソースバンドル専用のデフォルトのエンコーディングはUTF-8であり、無効なUTF-8バイトシーケンスに遭遇した場合はISO-8859-1にフォールバックします。[4] [5]
編集
.properties ファイルの編集は、Windows のメモ帳やLinux システムのEmacsやVimなど、 さまざまなオペレーティング システムに通常インストールされている任意のテキスト エディターを使用して行います。
次のような .properties ファイルの編集に特化した追加機能を備えたサードパーティ ツールも利用できます。
Java以外の使用法と例外
Apache Flexも.propertiesファイルを使用しますが、ここではUTF-8でエンコードされています。[6]
Apache mod_jkのuriworkermap.properties形式では、感嘆符(「!」)は行の最初の空白以外の文字として使用された場合、否定演算子を表します。 [7]
Perl CPANには.propertiesファイルへのインターフェースとなるConfig::Propertiesが含まれています。[8]
SAPは、SAPUI5フレームワークとそのオープンソースバリアントであるOpenUI5内でのローカリゼーションに.propertiesファイルを使用しています[9]
Npmのパッケージマネージャーでは、多くのNode.js(JavaScript/TypeScript)オプションが利用可能です。 [10]
PHPには多くのパッケージオプションも用意されています。[11]
参照
- より複雑な構成形式には、XML、JSON、YAMLが使用される場合もあります。
参考文献
- ^ Translate Toolkitのpo2propは、Gettext POファイル内のネイティブ文字エンコーディングを、native2asciiを必要とせずに正しくエスケープされたASCIIに変換します。
- ^ Java XML プロパティ DTD
- ^ 「java - ResourceBundle のリソース プロパティで UTF-8 を使用する方法」。Stack Overflow。2015年 3 月 17 日にオリジナルからアーカイブ。2015年 1 月 28 日に取得。
- ^ 「JDK 9 の国際化機能強化」。Oracleヘルプ センター。2018年 1 月 5 日閲覧。
- ^ 「JEP 226: UTF-8 プロパティ リソース バンドル」。OpenJDK。2020年9 月 3 日閲覧。
- ^ 「IResourceBundle」。Adobe ActionScript 3 (AS3 Flex) API リファレンス。
- ^ 「uriworkermap.properties 構成」。Apache Tomcat コネクタ - リファレンス ガイド。
- ^ 「Config::Properties - プロパティ ファイルの読み取りと書き込み」。metacpan.org。
- ^ 「SAPUI5 SDK - デモキット」。sapui5.hana.ondemand.com 。2019年5月14日閲覧。
- ^ 「keywords:properties java parse - npm search」。www.npmjs.com 。 2022年3月22日閲覧。
- ^ “Packagist”. packagist.org . 2022年3月22日閲覧。
外部リンク
java.util.Properties.load(java.io.Reader)- 整形式のJavaプロパティファイルの正確なセマンティクスを提供しますjava.util.PropertyResourceBundle- プロパティリソースバンドルを記述しますjava.util.Properties- シンプルな XML 形式で Java プロパティを説明します。- MultiProperties - 同様のコンテンツを持つ複数のキー値ベースのファイルを編集するための Eclipse プラグインです。この種のファイル形式は、たとえば Java プログラミング言語の Properties であり、ResourceBundle のバックアップによく使用されます。
- Bracket Properties - 広く普及している .properties ファイル形式をそのまま維持しながら、プロパティの概念を刷新します。
- Java プロパティ エディター (アプリケーション + Eclipse プラグイン) - プロジェクト全体のプロパティ ファイルを表示および編集するための便利なユーティリティ。
- DOKSoft プロパティ エディター Eclipse プラグイン ( Wayback Machineで 2014-07-28 にアーカイブ) - Eclipse IDE にインストールするための i18n ツール。
- メッセージ エディター - Java アプリケーションの i18n を管理します。XML プロパティ ファイルを生成します。コンパイル時に .properties と .xml プロパティを生成するための 2 つのスタイルシートが含まれています (Ant ベース)。
- JLokalize - 反転機能とスペルチェック機能を備えたオープンソースの Java プロパティ エディター
- Config::Properties - Perl CPAN。
- Jackson Propertiesモジュールは、 XMLとJSONが一般的にマッピングされるのと同様に、プロパティファイルの内容をJavaオブジェクトにマッピングしたり、その逆を行ったりできるライブラリです。
- SAPUI5 - アプリケーションでのローカライズされたテキストの使用
