PROPERTIES ファイル形式とは?
.properties 拡張子を持つファイルは、Java テクノロジーにおいてプロパティや設定可能なアプリケーションパラメータを保存するために使用されます。これらには国際化(i18n)やローカライズ用の文字列も含まれることがあり、Java アプリケーションや Spring などのフレームワークにおける i18n メッセージバンドルの標準形式となっています。
.properties ファイルの各行は、単一のパラメータを保持します。各パラメータは文字列のペアとして保存され、1つ目はパラメータの名前(キーと呼ばれます)、2つ目はその値を含みます。キーと値は =、:、または空白文字で区切られます。# または ! で始まる行はコメントとして扱われ、パーサーによって無視されます。行末のバックスラッシュ(\)は、次の行に値が続くことを示します。
デフォルトでは、.properties ファイルは ISO-8859-1 (Latin-1) でエンコードされます。UTF-8 をネイティブにサポートする YAML ファイル や XML ファイル とは異なり、非ラテン文字は \uXXXX Unicode エスケープシーケンスとして記述する必要があります。Java 9 では、明示的な文字セットが指定された場合に UTF-8 で .properties ファイルを読み込むサポートが導入されました。
.properties ファイルの編集
.properties ファイルは、任意のテキストエディタで自由に変更できます。ただし、通常のテキストエディタにはない追加機能を備えた、より高度なファイル編集ツールも利用可能です。これらのツールを使用すると、以下が可能になります:
- データのバリデーション(検証)
- 新しいキーの作成
- ロケールファイル間でのキー名の同期
- 非 ASCII 記号と
\uXXXXエスケープ間の自動双方向変換 - Eclipse との統合
追加情報
.properties ファイルは、Java アプリケーション内で java.util.Properties クラスを介してアクセスされます。通常、これらは JAR または WAR アーカイブ内のクラスパスリソースとしてバンドルされ、実行時にロードされます。これらに固定のデフォルトディレクトリはありません。非 Java 環境では .ini 形式が同様の役割を果たし、現代のコンテナ化されたデプロイメントでは .env ファイルが一般的に使用されます。
セキュリティと安全性
リスク: LOW.properties ファイルはプレーンテキストであり、コードを実行することはできないため、開くことは安全です。2つの実質的な懸念事項があります:(1) データベースのパスワード、API キー、接続文字列などの機密情報が含まれていることが多いため、信頼できないオンラインツールに貼り付けたり、公開リポジトリにコミットしたりしないでください。(2) 編集のリスク:タイポ、誤ったエンコーディング(ISO-8859-1 が期待される場所に UTF-8 で保存するとアクセント記号が文字化けする)、または不要な文字が含まれると、Java アプリが起動しなくなる可能性があります。値を変更する前に、必ずオリジナルのバックアップを取ってください。
形式の詳細
概要PROPERTIES ファイルを開くプログラム
技術的詳細
詳細仕様| デフォルトエンコーディング | ISO-8859-1 (Latin-1) |
| UTF-8 サポート | Java 9 以降で Properties.load() に明示的な文字セット引数を渡すことで利用可能 |
| 非 ASCII 文字 | ISO-8859-1 エンコーディングを使用する場合、\uXXXX Unicode エスケープシーケンスとして表現する必要がある |
| キーと値の区切り文字 | =、:、またはエスケープされていない空白文字 - 最初に出現したものがキーと値を分割する |
| コメント構文 | 行頭の # または ! |
| 行の継続 | 末尾の \ は次の行を現在の値に結合する。継続行の先頭の空白は削除される |
| 空白のトリミング | キーの前、および区切り文字と値の間の先頭の空白は自動的に削除される |
| 重複キーの動作 | パーサーによって許可される。最後の定義がそれ以前の定義を暗黙的に上書きする |
| Java API クラス | java.util.Properties |
| MIME タイプ | text/plain |
| マジックバイト / シグネチャ | なし - バイナリヘッダーのないプレーンテキスト。ファイル拡張子と key=value の行構造によって識別される |
| サポートされるエスケープシーケンス | \n, \t, \r, \\, \ (キー/値内のエスケープされたスペース), \uXXXX |
| 開発者 / 管理者 | Sun Microsystems / Oracle (Java プラットフォームの一部) |
| 一般的なデプロイメント | JAR または WAR アーカイブ内のクラスパスリソースとしてバンドルされ、実行時に getResourceAsStream() を介してロードされる |
| エコシステムの採用 | Java SE, Spring Framework, Android (レガシー), Apache Ant, Maven, および多くのサードパーティツールで使用 |
| リリース日 | 1996 (Java 1.0, java.util.Properties) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | docs.oracle.com |
PROPERTIES の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。PROPERTIES ファイルについて最初の質問をしてみましょう。
よくある質問
.properties ファイルを開くにはどうすればよいですか?
.properties ファイルを作成するプログラムは何ですか?
java.util.Properties クラスを介して作成します。Java/Spring プロジェクト(application.properties)や翻訳用(messages_en.properties などの ResourceBundle ファイル)として、いたるところで使用されています。