首頁 > 軟體

解決IntelliJ IDEA無法讀取組態檔的問題

2020-06-16 17:36:35

最近在學Mybatis,按照視訊的講解在專案的某個包裡建立組態檔,然後讀取組態檔,但是一直提示異常。

讀取組態檔的為官方程式碼:

String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();   

經過反復思考,視訊用的ide是eclipse,eclipse裡在包下的組態檔(.propoties 和.xml等)編譯之後會自動複製到編譯後的資料夾中,也就是classes目錄。因此程式碼可以通過路徑載入到組態檔。

而現在我們使用的是IntelliJ IDEA,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. 把組態檔放在com.zjut.ssm.config包中,修改config資料夾的Content Roots為Resources,那麼編譯後,程式碼也能識別出來。

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

如果是maven專案。還可以通過設定pom.xml來實現。

 <build>
    <finalName>springmvc-study</finalName>
    <resources>
        <resource>
            <directory>${basedir}/src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
        </resource>
    </resources>
 </build>

這樣不用對idea設定,也可以使用maven的編譯命令編譯專案,並複製組態檔到編譯好的資料夾中。

使用IntelliJ IDEA 13搭建Android整合式開發環境圖文教學 http://www.linuxidc.com/Linux/2015-09/123416.htm

IntelliJ IDEA 12 建立Web專案圖文詳細教學 http://www.linuxidc.com/Linux/2013-05/84213.htm

用IntelliJ IDEA開發Android程式圖文教學 http://www.linuxidc.com/Linux/2013-03/81471.htm

IntelliJ IDEA 12開發haXe NME應用設定指南 http://www.linuxidc.com/Linux/2013-01/77227.htm

IntelliJ IDEA執行Play Framework的test mode http://www.linuxidc.com/Linux/2013-07/87694.htm

Ubuntu 13.04 安裝IntelliJ IDEA 12 http://www.linuxidc.com/Linux/2013-11/93014.htm

IntelliJ IDEA 12建立Maven管理的Java Web專案(圖解) http://www.linuxidc.com/Linux/2014-04/99687p2.htm

IntelliJ IDEA 常用快捷鍵列表及技巧大全  http://www.linuxidc.com/Linux/2015-04/116398.htm 


IT145.com E-mail:sddin#qq.com