解決IDEA中resources下properties配置檔案無法讀取的問題
阿新 • • 發佈:2021-06-30
該案例是一個非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來說,就有以下幾種解決方案。
- 將配置檔案放到Resources資料夾中,在程式碼中新增配置檔案的虛擬路徑。選中檔案,右鍵-Copy Reference,就可以獲取到檔案的虛擬路徑。
- 修改存放配置檔案的資料夾的Content Roots為Resources,那麼編譯後,程式碼也能識別出來。
以上兩種解決方案適用於make project方式來編譯專案。
如圖所示:
此時注意觀察resources資料夾的顏色和樣子發生了變化,這時候就可以讀取到db.properties檔案了