java打成jar后,獲取resources下的文件資源問(wèn)題及解決
最近在寫代碼的時(shí)候發(fā)現(xiàn)
通過(guò)以下兩種方式獲取resources文件下的資源時(shí),在編輯器里運(yùn)行是能獲取到的,打成jar包以后就獲取不到了,后來(lái)發(fā)現(xiàn)原來(lái)項(xiàng)目打成jar包以后是一個(gè)文件,而不是一個(gè)文件夾,所以通過(guò)這種方式是獲取不到resources文件下的資源的。
//1.通過(guò)ClassPathResource 類獲取
ClassPathResource resource = new ClassPathResource("pdfTemplates/logo.jpg");
//2.通過(guò)ResourceUtils獲取
ResourceUtils.getFile("classpath:").getPath();
怎么辦呢?
我們可以通過(guò)下面的這種方式來(lái)獲取打包后的resources下的資源。
//讀取resources的文件,打成jar包后不能直接讀取,需要通過(guò)這種方式讀取
//這個(gè)是直接取的resources下的文件,所以直接寫resources下的相對(duì)路徑就行,不用加classpath:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("pdfTemplates/logo.jpg");
我這是獲取了一個(gè)圖片資源,這種獲取方式獲取出來(lái)的是文件流,可以轉(zhuǎn)成你們想要的方式去直接使用,我是轉(zhuǎn)成了byte[]。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java Socket編程實(shí)例(四)- NIO TCP實(shí)踐
這篇文章主要講解Java Socket編程中NIO TCP的實(shí)例,希望能給大家做一個(gè)參考。2016-06-06
Java實(shí)現(xiàn)字符數(shù)組全排列的方法
這篇文章主要介紹了Java實(shí)現(xiàn)字符數(shù)組全排列的方法,涉及Java針對(duì)字符數(shù)組的遍歷及排序算法的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-12-12
java常用工具類 Reflect反射工具類、String字符串工具類
這篇文章主要為大家詳細(xì)介紹了java常用工具類,包括Reflect反射工具類、String字符串工具類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
使用redis的increment()方法實(shí)現(xiàn)計(jì)數(shù)器功能案例
這篇文章主要介紹了使用redis的increment()方法實(shí)現(xiàn)計(jì)數(shù)器功能案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
Maven清理java項(xiàng)目中未使用到 jar 依賴包的方法
本文主要介紹了Maven清理java項(xiàng)目中未使用到 jar 依賴包的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
JDBC 程序的常見(jiàn)錯(cuò)誤及調(diào)試方法
本文是《Java Web開(kāi)發(fā)教程——入門與提高篇(JSP+Servlet)》一書《第9章 JDBC技術(shù)》的補(bǔ)充內(nèi)容。2009-06-06

