最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java普通項目讀取不到resources目錄下資源文件的解決辦法

 更新時間:2023年09月04日 09:11:50   作者:kingtopest  
這篇文章主要給大家介紹了關于java普通項目讀取不到resources目錄下資源文件的解決辦法,Web項目中應該經(jīng)常有這樣的需求,在maven項目的resources目錄下放一些文件,比如一些配置文件,資源文件等,需要的朋友可以參考下

現(xiàn)象如下:

 可以看到resources目錄已經(jīng)在idea中標記成了資源目錄resources root,而且target/classes目錄下也編譯出了resources目錄下的pci.properties文件,換句話說:java在編譯時是讀取到了resources下的文件的。

可是為什么new File以后做路徑判斷時為什么返回false,找不到文件呢?

這里需要了解java讀取文件的機制:

java讀取文件的兩種方法:java.io和java.lang.ClassLoader

也就是一個是用java.io,另一個是用類加載器讀取文件

使用java.io(File類就是基于此)默認定位到當前用戶目錄("user.dir")下, 而不是classpath!:

關于這一點:可以通過System.getProperty("user.dir")) 驗證:

 從上面的代碼可以看到System.getProperty("user.dir"))和new File("") 返回的路徑是一樣的:

都是工程目錄的工作路徑,這一點從idea的配置也可以看到:

所以如果要讀取classPath下的文件,一定不要不要使用File類!

此時應該使用類加載器來讀取classpath下文件。

idea環(huán)境下,默認的classPath是target/classes   

資源目錄resouces下(是src/main/resources目錄,且標記成了Resources Root)的文件在編譯時都會自動復制到classpath下。

所以可以通過類加載器按照如下的方式讀取資源目錄下的文件:

${ClassLoader}.getResource("/${path}")
或者
${ClassLoader}.getResourceAsStream("/${path}")

classLoader可以通過類名.class的方式來獲取

需要注意的是:getResource括號里面如果留空,則是從實際編譯的路徑去查找而不是classpath, 比如:

因為上面的是單元測試,此時getResource留空,則從target/test-classes開始查找

getResource括號里面如果從斜杠"/"開頭,則從classpath開始查找(也就是target/class)

總結(jié)

到此這篇關于java普通項目讀取不到resouces目錄下資源文件的解決辦法的文章就介紹到這了,更多相關java讀取不到resouces資源文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 如何利用泛型封裝通用的service層

    如何利用泛型封裝通用的service層

    這篇文章主要介紹了如何利用泛型封裝通用的service層,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 使用MultipartFile來上傳單個及多個文件代碼示例

    使用MultipartFile來上傳單個及多個文件代碼示例

    這篇文章主要介紹了使用MultipartFile來上傳單個及多個文件代碼示例,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • SpringBoot整合easyExcel實現(xiàn)CSV格式文件的導入導出

    SpringBoot整合easyExcel實現(xiàn)CSV格式文件的導入導出

    這篇文章主要為大家詳細介紹了SpringBoot整合easyExcel實現(xiàn)CSV格式文件的導入導出,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴可以參考下
    2024-02-02
  • SpringBoot整合Liquibase實現(xiàn)對數(shù)據(jù)庫管理和遷移

    SpringBoot整合Liquibase實現(xiàn)對數(shù)據(jù)庫管理和遷移

    Liquibase是一個用于用于跟蹤、管理和應用數(shù)據(jù)庫變化的開源工具,通過日志文件(changelog)的形式記錄數(shù)據(jù)庫的變更(changeset),然后執(zhí)行日志文件中的修改,將數(shù)據(jù)庫更新或回滾(rollback)到一致的狀態(tài),本文主要介紹SpringBoot與Liquibase的集成,需要的朋友可以參考下
    2024-11-11
  • Apache?Commons?Imaging處理圖像實例深究

    Apache?Commons?Imaging處理圖像實例深究

    這篇文章主要為大家介紹了Apache?Commons?Imaging處理圖像的實例探索深究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 使用SpringBoot開發(fā)Restful服務實現(xiàn)增刪改查功能

    使用SpringBoot開發(fā)Restful服務實現(xiàn)增刪改查功能

    Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。這篇文章主要介紹了基于SpringBoot開發(fā)一個Restful服務,實現(xiàn)增刪改查功能,需要的朋友可以參考下
    2018-01-01
  • Spring Boot全局異常處理機制中DispatcherServlet的處理流程和作用

    Spring Boot全局異常處理機制中DispatcherServlet的處理流程和作用

    本文深入解析Spring Boot全局異常處理機制,重點剖析DispatcherServlet的核心作用及其異常處理流程,詳細介紹了HandlerExceptionResolver接口及其三個默認實現(xiàn)類的執(zhí)行順序和工作原理,通過源碼分析,展示了Spring MVC如何將異常轉(zhuǎn)換為響應
    2026-01-01
  • 用C和JAVA分別創(chuàng)建鏈表的實例

    用C和JAVA分別創(chuàng)建鏈表的實例

    使用用C和JAVA分別創(chuàng)建鏈表的方法,創(chuàng)建鏈表、往鏈表中插入數(shù)據(jù)、刪除數(shù)據(jù)等操作。
    2013-10-10
  • SpringBoot常用注解,thymeleaf,數(shù)據(jù)提交的實現(xiàn)

    SpringBoot常用注解,thymeleaf,數(shù)據(jù)提交的實現(xiàn)

    SpringBoot簡化了微服務配置,提供快速啟動和內(nèi)嵌容器化web項目,常用注解包括@Component、@RestController等,Thymeleaf為前端頁面渲染提供支持,數(shù)據(jù)提交時需使用@RequestBody注解
    2026-01-01
  • spring?boot?redis中的key失效監(jiān)聽的問題解決

    spring?boot?redis中的key失效監(jiān)聽的問題解決

    本文主要介紹了spring?boot?redis中的key失效監(jiān)聽的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-07-07

最新評論

遵化市| 南召县| 福州市| 浪卡子县| 金溪县| 余姚市| 梅州市| 溧阳市| 沁水县| 即墨市| 甘孜县| 读书| 长泰县| 商洛市| 镶黄旗| 收藏| 民和| 聊城市| 斗六市| 阳江市| 札达县| 子洲县| 乌拉特后旗| 建宁县| 伊金霍洛旗| 长汀县| 灵武市| 廉江市| 大兴区| 长垣县| 扎鲁特旗| 乌什县| 福州市| 额尔古纳市| 囊谦县| 井研县| 新余市| 平原县| 盐源县| 天镇县| 南华县|