5

相対ディレクトリ(つまり、foo / bar / pluginh)をJavaクラスパスに追加して使用することは可能ですか?

InputStream in = getClassLoader().getResourceAsStream("xyzzy.properties");

foo / bar / plugin / xyzzy.propertiesを取得するには?

私のクラスパスは次のようになります。

foo.jar;foo/bar/plugh;xyz.jar 

また、fooとxyzの両方のjarからクラスとリソースを使用できますが、plughディレクトリからは使用できません。そのような場合、inは常にnullです。

これを機能させることができず、これがサポートされていないだけなのか、微妙な何かが欠けているのか、何か間違っているのかがわかりません。絶対パスを使用する必要がありますか?

4

1 に答える 1

6

おそらく私はあなたがやろうとしていることを誤解していますが、クラスパスにフォルダがある場合、その下にあるすべてのファイルもクラスパスにあるはずです。そうでない場合は、いつでも各.propertiesファイルをクラスパスに渡すことができます。

ただし、いずれの場合も、ファイルを含むファイル/フォルダーはクラスパスにあるため、次のことができるはずです。

InputStream in = new FileInputStream("classpath:xyz.properties")

また、「foo / bar / pluginh」はクラスパスにあるため、xyz.propertiesを検索する場所の1つは「foo / bar/plugh」にあります。

于 2009-05-09T02:39:21.917 に答える