【雑記】もうすぐPS4発売

いまは特に遊びたいタイトルはないんだよな。

タイタンフォールはちょっとやってみたい。

ディープダウンが出るころに買うかもなあ。

しばらくはゲームで遊ぶ暇もないから、まあいいか。

さて、今日もJAVAのウォーミングアップ。

スタンドアロンで起動するようなJAVAアプリケーションを作る場合、実行ファイルや設定ファイル、ログファイルなどのファイル構成をどうすべきか。

これには、まあ俺なりのポリシーがあって、まとめるとこうなる。

1.下準備がいらない。
たとえば、自分でフォルダを用意したり、ファイルを配置する手間が要らない。

2.起動するのに前提知識がいらない。
環境に依存しない、つまりダブルクリックですぐに使える。
別の言い方をすれば、設定ファイルなんかをいじらなくてもちゃんと起動する。

3.関連ファイルを見失わない。
設定ファイルや、ログファイル、アプリケーションが生成するデータファイルなどがシンプルにわかりやすく配置される。

4.構成をカスタマイズできる。
これはどちらかというと、使う側ではなく作る側の意識として、デフォルトの構成をハードコーディングしない、ということでもある。たとえば、ログの設定など変更できる仕組みがあっても、設定ファイルがjarにアーカイブされていては意味がない。

これらの要件をアプリケーションを作るたびに再開発するのはけっこうな手間だ。

かといってフレームワークにするほど大掛かりにしても、こんどは使うのに手間がかかってしまう。

ということで、比較的小規模のアプリケーション向けに、すぐに適用できる仕組みを作ってみた。

特徴はこうだ。

・jarファイルをダブルクリックするだけで起動し、初回起動時にjarファイルと同じ階層に、デフォルト設定のinit.propertiesを吐き出す。もちろん、init.propertiesを修正すれば次回起動時に反映される。

・また、初回起動時にjarファイルと同じ階層にdataフォルダを作成し、ログのコンフィグファイル(config-logger.xml)を吐き出す。もちろん、config-logger.xmlを修正すれば次回起動時に反映される。

・そして、初回起動時にjarファイルと同じ階層にlogsフォルダを作成し、ログを吐き出す。もちろん、config-logger.xmlを修正すれば…以下同文。

組み込むのも簡単だ。

ApplicationContext context = ApplicationContext.createContext();

上記の一行を入れて、後はcontextをシングルトンにして持ちまわるだけでよい。

contextに追加したプロパティは、init.propertiesに反映されるので、リビルドなしでカスタマイズもできる。

これでアプリケーションの足回りができたので、ちょっとしたツールを量産していこうと思う。

5年前

コメントを残す

メールアドレスが公開されることはありません。