1. ホーム
  2. java

[解決済み] Javaパッケージからのプロパティファイルの読み込み

2022-05-15 15:13:24

質問

パッケージ構造に埋もれているプロパティファイルを com.al.common.email.templates .

いろいろ試したのですが、わかりません。

最終的に、私のコードはサーブレットコンテナで実行されますが、私は何もコンテナに依存したくありません。私は JUnit テストケースを書き、それは両方で動作する必要があります。

どのように解決するのですか?

パッケージ内のクラスからプロパティを読み込む場合 com.al.common.email.templates を使用することができます。

Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("foo.properties");
prop.load(in);
in.close();

(必要な例外処理を全て追加する)。

もしあなたのクラスがそのパッケージに含まれていない場合は、少し違った方法でInputStreamを取得する必要があります。

InputStream in = 
 getClass().getResourceAsStream("/com/al/common/email/templates/foo.properties");

の相対パス(先頭の'/'がないもの)。 getResource() / getResourceAsStream() は、クラスが含まれるパッケージを表すディレクトリから、相対的にリソースを検索することを意味します。

使用方法 java.lang.String.class.getResource("foo.txt") を使うと、(存在しない)ファイルを検索します。 /java/lang/String/foo.txt をクラスパス上で探します。

絶対パス('/'で始まるもの)を使用すると、現在のパッケージは無視されます。