2

「src」ソースディレクトリ内のどこかに保存されたリソースファイルを含むディレクトリがあり、テンプレート、構成ファイルなどを含むとします。

サーブレットから、次のような名前でファイルにアクセスできることを認識しています。

File file = new File(ServletContact.getResource("some/namespace/filename.txt").getPath());

そして、私ができる非サーブレットから:

File file = new File(Object.class.getResource("some/namespace/filename.txt").getPath());

しかし問題は、これらのリソース ファイルにアクセスする必要があり、ランタイム環境から独立して実行できるコードがあることです。例: 一部のコードは、サーブレット内 (Tomcat 7 の下) からテンプレートを使用します。他のコードは Quartz バックグラウンド ジョブとして実行され、テンプレートで動作します。Tomcat サーブレットでこのメソッドを試すと、Object.class.getResource()null が返されます。

ランタイム環境やアプリ エンジンなどに関係なく、安全な方法でリソース ファイルにアクセスするにはどうすればよいですか?

4

2 に答える 2

1

クラスパスからファイルを読み取るには、次を使用できます。

getClass().getClassLoader().getResourceAsStream("path/to/resource");

また、シンプルで便利なSpringユーティリティClassPathResourceクラスもあります。

Resource resource = new ClassPathResource("path/to/resource");
于 2012-11-20T20:22:28.880 に答える