。プロパティ

フリー百科事典ウィキペディアより
ナビゲーションにジャンプ 検索にジャンプ
。プロパティ
ファイル名拡張子
。プロパティ

.propertiesは、アプリケーションの構成可能なパラメータを格納するためにJava関連のテクノロジで主に使用されるファイルのファイル拡張子ですまた、国際化とローカリゼーションのために文字列を格納するためにも使用できます。これらはプロパティ リソース バンドルとして知られています。

各パラメータは文字列のペアとして格納されます。1 つはパラメータの名前 (キー) を格納し、もう 1 つは値を格納します。

多くの一般的なファイル形式とは異なり、.properties ファイルのRFCはなく、仕様ドキュメントは必ずしも明確ではありません。これはおそらく形式が単純であるためです。

フォーマット

通常、.properties ファイルの各行には、1 つのプロパティが格納されます。、 、、などkey=value各行にいくつかの形式を使用できます単一引用符または二重引用符は、文字列の一部と見なされます。末尾のスペースは重要であり、消費者の必要に応じてトリミングされると想定されます。 key = valuekey:valuekey value

.properties ファイルのコメント行は、番号記号(#) または感嘆符(!) で最初の非空白 文字として示され、その行の残りのテキストはすべて無視されます。バックスラッシュは、文字をエスケープするために使用されます。プロパティ ファイルの例を以下に示します。

# 「.properties」ファイルのコメントを読んでいます。
! 感嘆符はコメントにも使用できます。
# 「プロパティ」のある行には、区切り文字で区切られたキーと値が含まれています。
# 3 つの区切り文字があります: '=' (等しい)、':' (コロン)、および空白 (スペース、\t および \f)。
ウェブサイト =  https://en.wikipedia.org/
言語 : 英語
トピック .properties ファイル
# 行上の単語は、値のないキーを作成するだけです。
空の
# キー、値、区切り文字の間にある空白は無視されます。
# これは、以下が同等であることを意味します (読みやすさ以外)。
こんにちは=こんにちは
こんにちは = こんにちは
# 同じ名前のキーは、ファイル内で最も遠いキーによって上書きされます。
# たとえば、「duplicateKey」の最終的な値は「second」になります。
duplicateKey  = 最初
duplicateKey  = 
# キー内で区切り文字を使用するには、\ でエスケープする必要があります。
# ただし、値でこれを行う必要はありません。
delimiterCharacters\ : \=\ = これは、キー「delimiterCharacters\:\=\」の値です。
# 行末に \ を追加すると、値が次の行に続くことを意味します。
multiline  = この行 \
続く
# 値に \ を含めたい場合は、別の \ でエスケープする必要があります。
パス =  c:\\wiki\\templates
# これは、行末の \ が偶数の場合、次の行は値に含まれないことを意味します。
# 次の例では、"evenKey" の値は "This is on one line\" です。
evenKey  = これは 1 行にあります\\
# この行は通常のコメントで、「evenKey」の値には含まれません
# \ の数が奇数の場合、次の行が値に含まれます。
# 次の例では、"oddKey" の値は "This is line one and\#This is line two" です。
oddKey  = これは 1 行目で、\\\
# これは 2 行目です
# 各行の前の空白文字は削除されます。
# 次の行でスペースが必要な場合は、\ の前に必ずスペースを追加してください。
# 次の例では、「ようこそ」の値は「ウィキペディアへようこそ!」です。
welcome  =  \ へようこそ
          ウィキペディア!
# 改行とキャリッジ リターンを追加する必要がある場合は、それぞれ \n と \r を使用してエスケープする必要があります。
# オプションで、読みやすくするために \t でタブをエスケープすることもできます。
valueWithEscapes  = これは、改行\n とキャリッジ リターン\r とタブ\t です。
# Unicode エスケープ文字 (最大 4 桁の 16 進数) も使用できます。
# 次の例では、「encodedHelloInJapanese」の値は「こんにちは」です。
encodedHelloInJapanese  =  \u3053\u3093\u306b\u3061\u306f
# しかし、UTF-8 のような最新のファイル エンコーディングでは、サポートされている文字を直接使用できます。
helloInJapanese  = こんにちは

上記の例では、web サイト(5 行目) がキーになり、対応する値はhttps://en.wikipedia.org/になります。番号記号 (#) と感嘆符 (!) はテキストをコメントとしてマークしますが、それがプロパティの一部である場合は効果がありません。したがって、welcomeキー(37 行目) の値は、Welcome to Wikipedia! です。ウィキペディアようこそ38 行目の前の空白はすべて除外されます。           

Java 9 より前では、.properties ファイルのエンコーディングはISO-8859-1 (Latin-1 とも呼ばれます) です。ASCII 以外のすべての文字は、 Unicodeエスケープ文字を使用して入力する必要があります。これにより、.properties ファイルをローカライズ用のリソース バンドルとして使用できます。非 Latin-1 テキスト ファイルは、 JDKに同梱されているnative2asciiツールを使用するか、バイリンガル ローカリゼーション形式からの変換を管理するpo2prop [1]などのツールを使用して、正しい .properties ファイルに変換できます。 .properties エスケープに。

ISO 8859-1 文字でエンコードされた Java *.properties ファイルで非 Latin-1 文字に Unicode エスケープ文字を使用する代わりに、Java 1.5 以降で導入された、デフォルトでUTF-8エンコードされた JDK の XML プロパティ ファイル形式を使用することです。[2]

もう 1 つの方法は、カスタム エンコーディングを提供するカスタム コントロールを作成することです。[3]

Java 9 以降では、プロパティ リソース バンドル専用のデフォルト エンコーディングは UTF-8 であり、無効な UTF-8 バイト シーケンスが検出されると、ISO-8859-1 にフォールバックします。[4] [5]

編集中

.properties ファイルの編集は、Windows のメモ帳やLinux システムの EmacsVimなど、さまざまなオペレーティング システムに通常インストールされているテキスト エディタを使用して行います。

次のような .properties ファイルの編集に固有の追加機能を備えたサードパーティ ツールも利用できます。

非 Java の使用と例外

Apache Flexも .properties ファイルを使用しますが、ここでは UTF-8 でエンコードされています。[6]

Apache mod_jkのuriworkermap.properties形式では、感嘆符 ("!") は、行の最初の非空白文字として使用される場合、否定演算子を示します。[7]

Perl CPANには、.properties ファイルに接続するための Config::Properties が含まれています。[8]

SAPは、フレームワーク SAPUI5 およびそのオープンソースのバリアントであるOpenUI5 [9]内で、ローカリゼーションに .properties ファイルを使用します。

Npmのパッケージ マネージャーで利用できる Node.js (JavaScript/TypeScript) オプションが多数あります。[10]

PHPには、利用可能な多くのパッケージ オプションもあります。[11]

も参照

  • XMLJSON、およびYAMLは、より複雑な構成形式のために一部で使用されています。

参考文献

  1. ^ Translate Toolkitpo2propは、native2ascii を必要とせずに、 Gettext PO ファイルのネイティブ文字エンコーディング
  2. ^ Java XML プロパティ DTD
  3. ^ 「Java - ResourceBundle を使用してリソース プロパティで UTF-8 を使用する方法」 . スタック オーバーフロー2015-03-17 のオリジナルからのアーカイブ2015 年1 月 28 日閲覧
  4. ^ 「JDK 9 での国際化の拡張」 . オラクル ヘルプ センター. 2018-01-05閲覧
  5. ^ "JEP 226: UTF-8 プロパティ リソース バンドル" . OpenJDK . 2020-09-03閲覧
  6. ^ "IResourceBundle" . Adobe ActionScript 3 (AS3 Flex) API リファレンス.
  7. ^ "uriworkermap.properties 構成" . Apache Tomcat コネクタ - リファレンス ガイド
  8. ^ "Config::Properties - プロパティ ファイルの読み取りと書き込み" . metacpan.org
  9. ^ "SAPUI5 SDK - デモ キット" . sapui5.hana.ondemand.com . 2019-05-14取得
  10. ^ "keywords:properties java parse - npm search" . www.npmjs.com 2022 年3 月 22 日閲覧
  11. ^ 「パッケージ業者」 . packagist.org 2022 年3 月 22 日閲覧

外部リンク

  • java.util.Properties.load(java.io.Reader)- 整形式の Java プロパティ ファイルの正確なセマンティクスを提供します。
  • java.util.PropertyResourceBundle- プロパティ リソース バンドルについて説明します
  • java.util.Properties- Java プロパティを簡単な XML 形式で説明します。
  • MultiProperties - 似た内容の複数のキー値ベースのファイルを編集するための Eclipse プラグインです. この種のファイル形式は、ResourceBundle のバッキングに頻繁に使用される Java プログラミング言語などのプロパティにすることができます。
  • ブラケットのプロパティ- どこにでもある .properties ファイル形式をそのまま維持しながら、プロパティの概念を一新します。
  • Java プロパティ エディタ (アプリケーション + Eclipse プラグイン) - プロジェクト全体のプロパティ ファイルを表示および編集するための便利なユーティリティ。
  • DOKSoft プロパティ エディター Eclipse プラグイン- Eclipse IDE にインストールするための i18n ツール。
  • Message Editor - Java アプリケーションの i18n を管理します。XML プロパティ ファイルを生成します。コンパイル時に .properties および .xml プロパティを生成するための 2 つのスタイルシートが含まれています (Ant ベース)。
  • JLokalize - リバース機能とスペル チェックを備えたオープン ソース Java プロパティ エディター
  • Config::Properties - Perl CPAN.
  • Jackson Properties モジュールは、 XMLJSONが一般的にマッピングされる方法と同様に、Properties ファイルの内容を Java オブジェクトにマッピングしたり、その逆にマッピングしたりできるライブラリです。
  • SAPUI5 - アプリケーションでのローカライズされたテキストの使用