2017-03-16 23 views
1

spring-boot jarのクラスパスファイルにアクセスできませんでした。spring-boot jarのclasspathファイルにアクセスするには?

私は次のことを試してみました:

Resource resource = new ClassPathResource("myResourceFile"); 

しかし、私はそれを読んしようとしたとき、私は次のようなメッセージ

it does not reside in the file system: jar:file:/myjar.jar!/BOOT-INF/classes!/myResourceFile 

を得た私は2感嘆符に気づきました。最初は、リソースがjarファイル内にあることを示していますが、2番目のクラス(クラスの後)が私の問題に関与しているかどうかはわかりません。

ありがとうございました。

私はスプリングブート1.4.5とスプリング - * 4.3.7を使用します。

答えて

0

クラスパスリソースを読み取る適切な方法は、リソースをストリームとして取得することです。あなたはクラスパスからイメージをロードする必要がある場合

InputStream is = this.getClass().getResourceAsStream("/myResourceFile"); 
+0

これはあなたの問題を解決するかもしれませんご協力いただきありがとうございます。実際には、実行可能なスプリングブートジャーの中のファイルを 'InputStream'で読むことができます。問題はフォルダ名しか知りません。フォルダ内のファイルを 'InputStream'でリスト表示することはできません。何か案が? – matth3o

+0

リソースフォルダ内のファイルをリストすることはできません(経験則として、リソースファイルは静的でなければなりません)。とにかくそれをやりたいのであれば、リソースディレクトリ内のすべてのファイルをリストアップする個別の固定ファイルを作成する必要があります。 –

0

は、あなたが以下のようなものを使用することができます:

new ClassPathResource("/static/img/logo.png"); 

リソースパス:

main -> resources -> static.img -> logo.png 
関連する問題