Java の properties ファイルをテキストエディタで編集する方法【Eclipse・専用エディタ不要】
properties ファイルで利用している文字コードは ISO 8859-1 です。このため、通常プロパティファイルの読込みや編集は、専用エディタが必要になります。
例えば Eclipse のような統合環境であればプロパティエディタにより編集可能ですが、Windows 標準のメモ帳では文字コードが違うため解読できないようなことが起こります。
しかし状況によって専用エディタを利用できない環境で、ファイル内容の確認が必要になるケースがあります。そんな時に JDK のツールを用いて、一般的なテキストエディタでもプロパティファイルを編集できるようにする方法を紹介します。
まずは Eclipse の properties エディタで閲覧した場合の状況です。
しかしこのファイルをテキストエディタで開くと、以下の通り文字化けしたような状態で表示されます。(実際は文字化けではありませんが。)
テキストエディタでプロパティファイルを編集
どのようにして編集できるようにするのか
問題になるのが特殊な文字コードです。つまり一般的なテキストエディタで開けるように文字コードを変換すれば、ファイル内の参照や編集が可能になります。
文字コード ISO 885901 をテキストエディタで読める Shift_JIS へ変換する
JDK の native2ascii を利用
今回利用するのがJDKに含まれる native2ascii.exe です。これを利用すれば、プロパティファイルの文字コードが変換できます。
このファイルは JDK 内の bin フォルダに格納されています。環境設定で PATH が通っていれば、bin フォルダまで移動しなくても直接 native2ascii コマンドが実行できます。
では通常のテキストエディタで開けるように、プロパティファイルの変換を行ってみましょう。
プロパティファイルの文字コード変換
変換コマンドは、コマンドプロンプト上で実行します。
native2ascii -reverse [対象のpropertiesファイル名] [変換後のテキストファイル名]
実行するとこのようになります。変換が成功しても、実行結果のメッセージは出力されません。
この時点で既に変換ファイルが作成されているので、変換後のファイルをテキストエディタで開いてみましょう。きちんと文字が読める状態になっています。
編集して元のコードに戻す
変換されたファイルは、編集した上で元のプロパティファイル形式に戻すこともできます。
例として3行目の MESSAGE_003 の内容を「確認メッセージ3」から「確認メッセージ4」に内容を書き換えて保存します。
変換時と同じコマンドで引数の [-reverse] を外せば、元の文字コードのファイルに戻せます。
native2ascii [変換前のテキストファイル名] [変換後のpropertiesファイル名]
ファイル名の指定順が先程と逆になるので注意してください。先に編集したテキストファイル名、後がプロパティファイル名です。
変換後のファイルを開くと、文字コードが元に戻って読めない状態になりました。よく見ると、編集した最後の文字が変わっていることが分かります。
ここではプロパティエディタでも確認してみましょう。文字化けのような問題もなく、編集箇所が反映されていることがわかります。
今回紹介した方法は、緊急時に開発環境がなくてもプロパティファイルの参照や編集が出来る方法として、利用していただければと思います。
最終的な編集結果が確認できないので、ファイル内の大規模な編集には不向きです。一時的に利用する程度に留めておいたほうが良いでしょう。
【おまけ】変換不要でテキストエディタ編集が可能になる
テキストエディタの Sublime Text を利用すれば、プラグインを導入するだけで properties ファイルが編集できます。
今回の話の趣旨とはズレますが、拡張性のあるテキストエディタを使えばプロパティファイルも編集できます。個人的に Sublime Text はかなり使い勝手が良いので、ぜひ一度使ってみてください。