初學(xué)Spring時(shí)遇到找不到文件異常(java.io.FileNotFoundException)的問題總結(jié)
初學(xué)Spring,做第一個(gè)試驗(yàn)時(shí)很多人都會碰到一個(gè)問題,就是程序執(zhí)行時(shí)不能正常執(zhí)行顯示預(yù)期結(jié)果,而是會顯示一些異常信息,主要就是java.io.FileNotFoundException這個(gè)異常信息。我在做實(shí)驗(yàn)時(shí)也遇到了這個(gè)問題,現(xiàn)在把我遇到的問題及解決方法貼出來,希望能讓初學(xué)Spring的人少走點(diǎn)彎路。
第一種情況:使用Myeclipse工具創(chuàng)建Spring項(xiàng)目時(shí),按照書上的例子寫好程序后,執(zhí)行時(shí)出現(xiàn)該異常。這時(shí)需要注意到,Myeclipse默認(rèn)的把a(bǔ)pplicationContext.xml文件放在項(xiàng)目的src目錄下,而一般我們看到的例子在讀取這個(gè)文件時(shí)使用的語句如下:

其實(shí)這時(shí)這么寫就不行了,因?yàn)檫@個(gè)語句在查找applicationContext.xml文件時(shí)是在項(xiàng)目的根目錄下查找,而不會到src目錄下查找。這時(shí),應(yīng)該把語句改為:
代碼2:

即加上src這個(gè)目錄,就不會出錯(cuò)了。如果不是使用Myeclipse而是使用eclipse自己導(dǎo)入spring包進(jìn)行開發(fā),就要先看一下在建項(xiàng)目的時(shí)候,是選擇把.java文件和.class文件分開放置還是放在同一個(gè)目錄,如果選擇了分開放置則情況和上面的一樣(前提條件是applicationContext.xml文件也是自己建在src目錄下);如果選擇了把.java文件和.class文件放在同一個(gè)目錄下,這時(shí)就要看建applicationContext.xml文件時(shí)放在哪個(gè)目錄下了,如果是放在根目錄下,就使用代碼1的代碼就可以了。如果把a(bǔ)pplicationContext.xml文件和.java文件放在了同一個(gè)目錄下,這個(gè)時(shí)候就要加上程序的包路徑了,如我的Java源程序的包名是org.wzhongyu,我就要用下面的語句來實(shí)現(xiàn):
代碼3:(注意:這里不能用org.wzhongyu.applicationContext.xml,因?yàn)槌绦驎J(rèn)為org.wzhongyu.也是文件名的內(nèi)容)

第二種情況:使用eclipse+springIDE進(jìn)行開發(fā),而配置文件使用屬性配置文件(即.properties文件),出現(xiàn)異常。這時(shí)應(yīng)該注意,配置文件應(yīng)該放在CLASSPATH路徑下,如果建項(xiàng)目的時(shí)候沒有選擇把.java文件和.class文件分開放置,那么這個(gè).properties文件就應(yīng)該放在項(xiàng)目的根目錄下,這樣不會出錯(cuò)。如果建項(xiàng)目的時(shí)候,選擇了把.java文件和.class文件分別放在src目錄和bin目錄下,這時(shí)一定要注意把.properties文件放在src根目錄下,否則就會出錯(cuò)。但是,我們讀取這個(gè)配置文件的時(shí)候,一定不能加上src這個(gè)目錄,用下面的代碼:
代碼4:



這里沒有加上src,因?yàn)槌绦驁?zhí)行的CLASSPATH就是在src根目錄下,不放在這里就會出錯(cuò),就是出現(xiàn)java.io.FileNotFoundException這個(gè)異常信息。
上面這些,是我遇到的問題并解決它們的辦法,如果您來到這里并遇到一些和我遇到的不一樣的情況,也歡迎您貼出來,大家共同學(xué)習(xí)。另外,推薦一本關(guān)于Spring的書,寫的還不錯(cuò)。《Spring 2.0技術(shù)手冊》