2017-03-16 73 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裏面,但我不知道第二個(課後)是否涉及到我的問題。

感謝您的幫助。

我使用spring-boot 1.4.5和spring- * 4.3.7。

回答

0

讀取類路徑資源的正確方法是將資源作爲流獲取。

這可能會解決你的問題:

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

謝謝你的幫助。事實上,我可以用'InputStream'在我的可執行文件spring-boot jar中讀取一個文件。問題是我只知道文件夾名稱,並且我沒有設法使用'InputStream'在我的文件夾中列出文件。任何想法? – matth3o

+0

我不認爲你可以列出資源文件夾內的文件(作爲一個經驗法則,資源文件應該是靜態的)。如果您仍想這樣做,那麼您將需要創建一個單獨的固定文件,其中列出資源目錄中的所有文件。 –

0

如果您需要加載從classpath中的圖像,你可以使用類似如下:

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

資源路徑:

main -> resources -> static.img -> logo.png