解決IDEA中resources下properties配置文件無法讀取的問題


該案例是一個非maven的普通java程序。

 

問題說明:

  案例中將resources文件夾建在了src目錄之外,導致程序讀取不到db.properties文件

InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("resources/db.properties");

  報錯:訪問不到改路徑

如圖所示:

 

后來,將 resources文件夾挪到了src目錄下面,也報錯找不到路徑,注意觀察resources文件夾的顏色和樣子

如圖所示:

問題原因:

idea對這些配置的文件方式很明顯和eclipse是不同的。在idea中有一個 Content Roots的概念。需要為每一個folder配置相應的Content Roots。Content Roots包括resources、sources、tests等。

  • java文件夾被標注為Sources,那么下面的所有子文件夾均為Sources,編譯后生成.class文件。
  • Resources文件夾被標注為Resources,那么在該文件夾下的配置文件在編譯時會自動復制到編譯文件夾中。

那么對於idea來說,就有以下幾種解決方案。

  1. 將配置文件放到Resources文件夾中,在代碼中添加配置文件的虛擬路徑。選中文件,右鍵-Copy Reference,就可以獲取到文件的虛擬路徑。
  2. 修改存放配置文件的文件夾的Content Roots為Resources,那么編譯后,代碼也能識別出來。

以上兩種解決方案適用於make project方式來編譯項目。

 

如圖所示:

 

此時注意觀察resources文件夾的顏色和樣子發生了變化,這時候就可以讀取到db.properties文件了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM