実行可能jar の プロパティファイルを外部に置く
背景
実行可能jarの設定などを記述したプロパティファイルを
開発時と本番時で分けて利用したいと思う場面はよくあることかと思います
MANIFEST.MF の Class-Path: にプロパティファイルを配置する
ディレクトリへのパスを記述すればよいようでしたが
はまったのでメモしておきます
要点
相対パスでは認識してもらいえない
自分が試した限りは、相対パスでは認識して貰えませんでした
パスの最後に “/” を付ける
こちらを参考にそうしました
http://www.coderanch.com/t/385714/java/java/Class-Path-manifest-picking-properties
例 MANIFEST.MF
例えばこんな感じです
Manifest-Version: 1.0 Class-Path: /path/to/prop-dir/ Build-Jdk: 1.7.0_17 Built-By: who Created-By: Apache Maven Main-Class: org.springframework.batch.core.launch.support.CommandLineJ obRunner Archiver-Version: Plexus Archiver
/path/to/prop-dir ディレクトリの下に
あなたが読み込ませたいプロパティファイルを配置します
このMANIFEST.MF を同梱した jar を実行すると
それが参照されます
試した環境
$ cat /etc/redhat-release CentOS release 6.3 (Final) $ java -version java version "1.7.0_17" Java(TM) SE Runtime Environment (build 1.7.0_17-b02) Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
I hope this helps.