受講料が最大70%OFF 受講料が最大70%OFF

プロパティ ファイルとは?

プロパティ ファイルは、プログラムで使用する設定値を保存し、必要な時に 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」は基本的にアルファベットなどのASCII文字しか扱えず、日本語などのマルチバイト文字は、上の例のようにエスケープ して保存されます。

一度 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 で設定値などを管理する場合に使う基本的な方法であるため、是非覚えておきましょう。

【関連記事】
JavaでXMLを読み込みする方法を解説!概要や出力方法も合わせて紹介

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。