1. 程式人生 > 其它 >解決IDEA中resources下properties配置檔案無法讀取的問題

解決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檔案了