ハマログ

株式会社イーツー・インフォの社員ブログ

実行可能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.

  桑原 光昭   2013年5月24日


関連記事

AWS CDKを活用して既存Webサービスをコンテナ化・インフラ刷新した案件の事例紹介

先々月、私がメインで関わっている案件でAWSのインフラを刷新し、無事に完了しまし…

MacOS XのGatekeeper

こんにちは、かねこです。 今流行のSASS/LESSをShin先輩に調べてもらっ…

LaravelとGoogle APIの統合

LaravelでGoogleのAPIを利用します。 Laravelにはcompo…


← 前の投稿

次の投稿 →