プロパティ ファイルとは?
プロパティ ファイルは、プログラムで使用する設定値を保存し、必要な時に Java のプログラムから読み出して使用する、いわゆる設定ファイルです。
Java にかぎらずアプリケーション開発では、環境によって変わるかもしれない設定値は、外部のファイルに保存しておくことが推奨されます。
例えば、データベースの接続文字列を、ソースコードの中に直接記述してしまうと、テスト環境と本番環境で接続先が変わるたびにコンパイルが必要となり、管理が煩雑です。
このような時は、プロパティ ファイルに設定値を持たせてソースコード上から設定値をプロパティ ファイルに追い出すことで、環境ごとに接続文字列を定義したプロパティ ファイルを読み込むことで、ソースコードを再コンパイルすることなく、データベースへの接続先を切り替えることができます。
プロパティ ファイルについての詳細や、Java のプログラムから読み書きする方法については、以下の記事で解説していますので、こちらもご覧ください。
【関連記事】
▶【Java基礎】プロパティファイルから情報を読み込む
プロパティ ファイルの文字コード
プロパティ ファイルは「ISO 8859-1」の文字コードでエンコーディングされています。ISO 8859-1 は通称 Latin-1 とも呼ばれる文字コードです。
「ISO 8859-1」では、日本語などのマルチバイト文字列は、次のイメージのように一見すると文字化けしたような形式で保存されるめ、通常は、Eclipse などの専用エディタを使用して編集をします。
プロパティ ファイルを編集する方法
上述したように、Java で設定値などを保存するプロパティ ファイルは、ISO 8859-1 の文字コードで保存されているため、日常的にテキストファイルなどで使用している UTF-8 や Shift-JIS などのように直接メモ帳などで編集することは難しいと言えます。
プロパティ ファイルを編集するには、次のような方法をとります。
Eclipse のプロパティエディタを使用する
Eclipse は、Java の統合開発環境ということもあり、プロパティ ファイルを容易に編集するためのプラグインが多くあります。その中から、この記事では「Simple Properties Editor」と「Limy プロパティー・エディタ」の2つのプラグインついて解説します。
1つ目の「Simple Properties Editor」は、その名のとおり、シンプルにプロパティ ファイルを編集できるエディタです。ISO 8859-1 への文字コード変換は、ファイルの保存時にプラグインが自動で行ってくれるため、利用者は通常のテキストファイルを編集しているのと同じ感覚でプロパティ ファイルの編集ができます。
「Simple Properties Editor」を Eclipse にインストールするには、メニューのヘルプから「Eclipseマーケットプレイス」をクリックします。
そして、検索ボックスに「Simple Properties Editor」と入力て検索し、インストールボタンをクリックします。
「使用条件の条項に同意します」にチェックを入れて完了ボタンをクリックします。
インストールが終わったら Eclipse を再起動します
Eclipse を再起動したら、プロパティファイルを右クリックし、「次で開く」→「Simple Properties Editor」をクリックしてファイルを編集します。
試しに、次の日本語を含む設定をエディタに貼り付けて保存してみましょう。
#サンプルプロパティ ファイル
MSG1=サンプルメッセージ
MSG2=SAMPLE MESSAGE
保存したファイルを、メモ帳などの普通のエディタで開くと、ISO 8859-1形式で保存されているのが分かります。
2つ目の Limy プロパティー・エディタも、ファイルの保存時に ISO 8859-1形式に自動で変換してくれるプラグインで、操作方法も基本的には「Simple Properties Editor」と同じです。
Limy プロパティー・エディタの特徴としては、Pleiades All in One Eclipse などの統合開発環境であれば、初めから Limy がインストールされている状態になっていることです。
JDK の native2ascii を利用
JDK (Java Development Kit)に含まれる native2ascii 使って、プロパティ ファイルを編集する方法もあります。
native2ascii は、コマンドラインで指定したプロパティ ファイルの文字コードを、ISO 8859-1 に変換したり、その逆をしたりできます。
native2ascii コマンドの構文は次のとおりです。
native2ascii [変換対象のpropertiesファイル名] [変換後のファイル名]
native2ascii コマンドを実際に試してみましょう。
まず、次のようなプロパティ ファイルをテキストエディタでで作成し、任意の場所に test.properties というファイル名で保存しましょう。
#サンプルプロパティ ファイル
MSG1=サンプルメッセージ
MSG2=SAMPLE MESSAGE
用意ができたら、次のコマンドでプロパティ ファイルの文字コードを変換します。
native2ascii test.properties test_after.properties
変換後のファイルとして作成されたtest_after.properties を開くと、次のように文字が ISO 8859-1 に変換されているのが分かります。
#\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30d1\u30c6\u30a3 \u30d5\u30a1\u30a4\u30eb
MSG1=\u30b5\u30f3\u30d7\u30eb\u30e1\u30c3\u30bb\u30fc\u30b8
MSG2=SAMPLE MESSAGE
一度 ISO 8859-1 形式に変換したプロパティ ファイルを、元の文字コードのテキストファイルに復元する場合は、-reverse オプションを付けて native2ascii コマンドを実行します。
native2ascii -reverse test_after.properties test.properties
WEBツールを使用する
プロパティ ファイルを編集する、もっとも最前な方法は、上で紹介した Eclipse や native2ascii コマンドを使用する方法ですが、手元に開発ツールや JDK がない場合は、ウェブブラウザを使って文字コードを変換する方法もあります。
例えば「Unicodeエスケープシーケンス変換ツール」では、ブラウザ上で日本語などのマルチバイト文字を Unicode エスケープシーケンスに変換した文字列を作成できるツールです。
サイトを使って変換した文字を、プロパティ ファイルに貼り付ければ、内容を編集することも可能です。
size-full wp-image-36039″ />
https://tech-unlimited.com/escape-unicode.html
さいごに
Java のプロパティファイルを編集するツールについて解説してきました。
プロパティ ファイルは、Java で設定値などを管理する場合に使う基本的な方法であるため、是非覚えておきましょう。
「ISO-8859-1」は基本的にアルファベットなどのASCII文字しか扱えず、日本語などのマルチバイト文字は、上の例のようにエスケープ して保存されます。