只要你是用java在開(kāi)發(fā)產(chǎn)品,不管你現(xiàn)在用的是什么工具,做的哪一塊,android,j2ee...可能都會(huì)遇到這個(gè)異常。今天我也就這對(duì)異常的解決方法做一個(gè)總結(jié)。本文章主要講的是“我在運(yùn)行一個(gè)java web項(xiàng)目報(bào)這個(gè)異常的解決方法”,其他同學(xué)在不同項(xiàng)目中的遇到這個(gè)異常也可以借鑒我這個(gè)總結(jié)。
1、從這個(gè)異常字面意思很容易得出異常原因“類找不到”。那我就針對(duì)這個(gè)原因總結(jié)以下幾點(diǎn):
1)java中唯一表示一個(gè)類:是包名+類名,所以在引用這個(gè)類的地方檢查下"包名和類名"是否都正確。
2)如果引用的地方是對(duì)的,那這一步就應(yīng)該檢查下,包含的這個(gè)類的jar包和項(xiàng)目是否引用進(jìn)來(lái)了。
3)上面這兩步,如果出錯(cuò)的話,在編譯時(shí)就會(huì)報(bào)錯(cuò),但是在有些環(huán)境下就不會(huì)的。比如在android的xml布局中有時(shí)就不會(huì)報(bào)錯(cuò)的,而是運(yùn)行時(shí)報(bào)錯(cuò)。
4)上面1、2兩步?jīng)]有問(wèn)題的話,可是在運(yùn)行時(shí)就報(bào)錯(cuò)。咋辦,確定在項(xiàng)目在打包時(shí)候已經(jīng)把包含這個(gè)類的庫(kù)打包進(jìn)來(lái)了。
上面就是我對(duì)這異常的總結(jié),有需要的同學(xué)可以參考借鑒下。
2、到這一步,我來(lái)解決遇到一個(gè)實(shí)際問(wèn)題。我的java web項(xiàng)目每次運(yùn)行時(shí)候都報(bào)這個(gè)錯(cuò)"org.apache.catalina.LifecycleException: Failed to start component",如下圖所示:
3、在這里我很簡(jiǎn)單的看了下,就是類找不到嗎?以為很簡(jiǎn)單就解決了,可結(jié)果為了這個(gè)問(wèn)題,我大概花了2天時(shí)間才終于找到根結(jié)所在,好了,廢話不多說(shuō),進(jìn)入主題"類找不到"我看了下,如果類找不到,應(yīng)該在編譯時(shí)就報(bào)錯(cuò)的,myeclipse在檢查項(xiàng)目時(shí)應(yīng)該也會(huì)報(bào)錯(cuò),可是我卻發(fā)現(xiàn)沒(méi)有錯(cuò)誤,如下圖所示:
4、我就奇怪了,然后又檢查下依賴,發(fā)現(xiàn)相應(yīng)的類庫(kù)都導(dǎo)入進(jìn)來(lái)了。如下圖所示:
5、結(jié)果我又想,難道是版本問(wèn)題,結(jié)果把錯(cuò)誤往百度一粘,搜了下發(fā)現(xiàn)確實(shí)有人說(shuō)是版本或包沖突問(wèn)題;結(jié)果我就檢查依賴關(guān)系,讓多數(shù)類庫(kù)依賴同一版本的類庫(kù)。
6、結(jié)果心想這次可就要解決了,可惜又不行了,一運(yùn)行還是報(bào)重復(fù)的錯(cuò)。看到這里的同學(xué),如果是老鳥(niǎo)應(yīng)該會(huì)猜到是運(yùn)行時(shí)報(bào)錯(cuò)了,那應(yīng)該就是運(yùn)行時(shí)找不到類庫(kù)。如果你是這么想那就對(duì)了一半,結(jié)果我就檢查tomcat這個(gè)項(xiàng)目下WEB-INF/lib目錄,一看果然是空的。
7、那我就想為什么這個(gè)目錄是空的,按理說(shuō)在打包時(shí)候應(yīng)該會(huì)把類庫(kù)放到這個(gè)目錄下面。所以我就檢查下了,這個(gè)pom里面的打包配置,果然發(fā)現(xiàn)打包的時(shí)候有如下配置導(dǎo)致沒(méi)有把jar庫(kù)打包到這個(gè)目錄下面,如下圖所示:
8、至于這個(gè)是什么意思,簡(jiǎn)單理解就是打包的時(shí)候不包括項(xiàng)目下的jar庫(kù),這樣就導(dǎo)致項(xiàng)目部署到tomcat上去的時(shí)候,一運(yùn)行就報(bào)上面剛開(kāi)始說(shuō)的錯(cuò)。
9、好了,到這我的講解就該結(jié)束了。本文可能專業(yè)技術(shù)含量比較高,不是一篇通用的技術(shù)文。但我的用意是希望其他同學(xué)遇到相同問(wèn)題,不要再經(jīng)歷我這兩天搜索再分析,搜索再分析...這樣的重復(fù)勞動(dòng)。也許你遇到可能不是本文類似的情況,但是我希望本文的分析方法對(duì)你有所幫助。
相關(guān)推薦:
MyEclipse怎么實(shí)現(xiàn)包的層次放置?
MyEclipse怎么快速處理折疊和展開(kāi)代碼?
Myeclipse怎么調(diào)試并查看查看變量值的變化?
新聞熱點(diǎn)
疑難解答
圖片精選