0

jarに添付されたプロパティファイルが必要なJavaプログラムで作業しようとしていました。したがって、私はプログラムをjarし、それを展開してプロパティファイルを添付しました。プロパティ ファイルを必要とするクラス MyClass があります。したがって、基本的にプロパティ ファイルを MyClass.class と同じフォルダーに配置します。それから私はそれを元に戻しました。

私の MyClass.java では、次の方法でプロパティにアクセスしようとしていました。

Properties prop = new Properties();
prop.load(MyClass.class.getClassLoader().getResourceAsStream("prop.properties"));

prop.properties は MyClass.class と同じフォルダーにあります。

読み込みに失敗しました。どんな助けでも大歓迎です!

ありがとう、

4

1 に答える 1

4

ClassLoader.getResourceAsStream()は、パスをクラスパスのルートに対する相対パスとして扱います。つまり、クラス ローダーの各 JAR またはディレクトリのルート レベルでリソースを検索します。

おそらくClass.getResourceAsStream、問題のクラスのパッケージに対する相対パスとしてパスを扱う が必要です。また、ストリームを読んだら必ず閉じる必要があります。

Properties prop = new Properties();
InputStream in = MyClass.class.getResourceAsStream("prop.properties");
try {
  prop.load(in);
} finally {
  in.close();
}

MyClassパッケージ内にある場合、これはJAR からcom.exampleロードされます。com/example/prop.properties

于 2013-03-29T21:17:16.827 に答える