- PR -

JARファイルにしたときエラー発生

1
投稿者投稿内容
A.K.渡邉
常連さん
会議室デビュー日: 2004/11/15
投稿数: 30
投稿日時: 2006-10-21 10:20
Mac OSx & Eclipse 3.2 & Tomcat 5.1の環境です。

JARにする前に
File f = new File("/com/hoge/hoge.properties");
InputStream is = new FileInputStream(f);

としてプロパティーファイルを読めるようにしたのですが、プロパティーファイルとJavaファイルをそのままJARにしてTomcatに入れて使うと「指定されたhoge.propertiesファイルが見つかりません」等のエラーがでます。JARにする前の環境では問題ありません。

クラスファイルとプロパティーファイルを同じJARに入れそれをWARにして別サーバーで使いたいのですが、何か良い解決策がありましたらお願い致します。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-10-21 10:31
jarになるとアーカイブされてFileではなくなってしまうので…

ClassLoader.getResourceAsStream()でリソースを読み込むストリームを取得して
Properties.load()でプロパティファイルを読み込みましょう。

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/ClassLoader.html#getResourceAsStream(java.lang.String)
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Properties.html#load(java.io.InputStream)
A.K.渡邉
常連さん
会議室デビュー日: 2004/11/15
投稿数: 30
投稿日時: 2006-10-21 10:38
早速の返信、ありがとうございます。これで解決できます。しかし一つ疑問が残ります。同じ名前のファイルがJARファイル内に複数ある場合等の対処の方法があるのでしょうか?ご存知でしたお願い致します。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-10-21 10:48
ClassLoader#getResourcesを使うと、URLを含むEnumerationが戻ります。
URLで判断した後、URL#openStreamでInputStreamが取得できますよ。
A.K.渡邉
常連さん
会議室デビュー日: 2004/11/15
投稿数: 30
投稿日時: 2006-10-21 11:25
ありがとうございます。納得いきました。これでできると思います。お世話になりました。
1

スキルアップ/キャリアアップ(JOB@IT)