springboot項(xiàng)目打成jar包后無法獲取static下的靜態(tài)資源文件的問題分析
springboot 后端項(xiàng)目 做某個(gè)功能時(shí) 需要讀取根目錄下的.doc文件,具體項(xiàng)目中路徑如下:

開始是通過絕對(duì)路徑讀取文檔,在本地沒有任何問題。
但是 講項(xiàng)目打成jar包 部署到測(cè)試環(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringCloud集成sleuth和zipkin實(shí)現(xiàn)微服務(wù)鏈路追蹤的實(shí)戰(zhàn)分享
最近項(xiàng)目上準(zhǔn)備引入接口調(diào)用鏈路追蹤,說到這個(gè)我們就不得不想到springcloud全家桶中的sleuth了,他可以將跨多個(gè)服務(wù)請(qǐng)求鏈路記錄下來,供我們查詢分析,所以今天就分享一期微服務(wù)架構(gòu)接入sleuth+zipkin實(shí)戰(zhàn)演示,需要的朋友可以參考下2024-12-12
如何在?Spring?Boot?中使用?OpenAI?ChatGPT?API
這篇文章主要介紹了如何在Spring?Boot中使用OpenAI?ChatGPT?API,我們探索了 OpenAI ChatGPT API 以生成對(duì)提示的響應(yīng),我們創(chuàng)建了一個(gè) Spring Boot 應(yīng)用程序,它調(diào)用 API 來生成對(duì)提示的響應(yīng),需要的朋友可以參考下2023-08-08
比較Java數(shù)組和各種List的性能小結(jié)
這篇文章主要是分別對(duì)Java數(shù)組、ArrayList、LinkedList和Vector進(jìn)行隨機(jī)訪問和迭代等操作,并比較這種集合的性能。有需要的可以參考借鑒。2016-08-08
詳解Http請(qǐng)求中Content-Type講解以及在Spring MVC中的應(yīng)用
這篇文章主要介紹了Http請(qǐng)求中Content-Type講解以及在Spring MVC中的應(yīng)用的相關(guān)資料,需要的朋友可以參考下2017-02-02
HashMap底層數(shù)據(jù)結(jié)構(gòu)詳細(xì)解析
這篇文章主要介紹了HashMap底層數(shù)據(jù)結(jié)構(gòu)詳細(xì)解析,HashMap作為開發(fā)中常用的數(shù)據(jù)結(jié)構(gòu),也是面試中經(jīng)常被問的知識(shí)點(diǎn),因此作為開發(fā)者應(yīng)該盡可能多的理解其底層的數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2023-11-11
Windows環(huán)境使用bat腳本啟動(dòng)Java服務(wù)的過程
Java項(xiàng)目一般會(huì)被打包成jar后啟動(dòng),在windows系統(tǒng)中可以通過終端窗口cmd啟動(dòng)jar包,即在jar包所在的目錄中打開cmd,或在cmd中進(jìn)入到j(luò)ar包目錄,這篇文章主要介紹了Windows環(huán)境使用bat腳本啟動(dòng)Java服務(wù),需要的朋友可以參考下2023-08-08
java?stream實(shí)現(xiàn)分組BigDecimal求和以及自定義分組求和
這篇文章主要給大家介紹了關(guān)于java?stream實(shí)現(xiàn)分組BigDecimal求和以及自定義分組求和的相關(guān)資料,Stream是Java8的一大亮點(diǎn),是對(duì)容器對(duì)象功能的增強(qiáng),它專注于對(duì)容器對(duì)象進(jìn)行各種非常便利、高效的聚合操作或者大批量數(shù)據(jù)操作,需要的朋友可以參考下2023-12-12

