springboot項(xiàng)目打成jar包后無法獲取static下的靜態(tài)資源文件的問題分析
springboot 后端項(xiàng)目 做某個(gè)功能時(shí) 需要讀取根目錄下的.doc文件,具體項(xiàng)目中路徑如下:
開始是通過絕對路徑讀取文檔,在本地沒有任何問題。
但是 講項(xiàng)目打成jar包 部署到測試環(huán)境發(fā)現(xiàn)無論怎樣都讀取不到,然后在本地運(yùn)行jar包出現(xiàn)同樣的情況。
捕獲異常:java.io.FileNotFoundException
[org.apache.ibatis.session.defaults.DefaultSqlSession@55b40849]
java.io.FileNotFoundException: class path resource [static/****.doc] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/D:/**/***/target/****-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/static/****.doc
原因:
此時(shí)運(yùn)行中的Java程序其實(shí)是在讀取jar包中的文件,直接使用下面的方式是不行的:
常見的獲取路徑寫法: //例子 比如文件路徑 src\main\resources\static\***.doc String path = this.getClass().getClassLoader().getResource("").getPath()+"/static/***.doc"; File file = new File(path);
在java中,如果應(yīng)用打成jar包后,應(yīng)用運(yùn)行后需要讀取本jar包之內(nèi)的文件,更換寫法:
通過類加載器的getResourceAsStream方法,讓jar讀取到自己的資源文件 InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("static/***.doc");
即可。
總結(jié)
到此這篇關(guān)于springboot項(xiàng)目打成jar包后無法獲取static下的靜態(tài)資源文件的問題分析的文章就介紹到這了,更多相關(guān)springboot打成jar包無法獲取靜態(tài)資源文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Kafka producer端開發(fā)代碼實(shí)例
這篇文章主要介紹了Kafka producer端開發(fā)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Spring Security OAuth2實(shí)現(xiàn)使用JWT的示例代碼
這篇文章主要介紹了Spring Security OAuth2實(shí)現(xiàn)使用JWT的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09Java程序運(yùn)行之JDK,指令javac java解讀
這篇文章主要介紹了Java程序運(yùn)行之JDK,指令javac java,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Intellij IDEA如何自定義注釋模板的實(shí)現(xiàn)方法
這篇文章主要介紹了Intellij IDEA如何自定義注釋模板的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05java Comparator.comparing排序使用示例
本文主要介紹了java Comparator.comparing排序使用示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10Java超詳細(xì)教你寫一個(gè)銀行存款系統(tǒng)案例
這篇文章主要介紹了怎么用Java來寫一個(gè)銀行的存款系統(tǒng),銀行存款主要有賬號和存款金額兩個(gè)屬性,感興趣的朋友跟隨文章往下看看吧2022-03-03JDK14新特性之switch表達(dá)式的實(shí)現(xiàn)
這篇文章主要介紹了JDK14新特性之switch表達(dá)式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05