myeclipse編程提示ClassNotFoundException錯(cuò)誤怎么辦?

只要你是用java在開發(fā)產(chǎn)品,不管你現(xiàn)在用的是什么工具,做的哪一塊,android,j2ee...可能都會遇到這個(gè)異常。今天我也就這對異常的解決方法做一個(gè)總結(jié)。本文章主要講的是“我在運(yùn)行一個(gè)java web項(xiàng)目報(bào)這個(gè)異常的解決方法”,其他同學(xué)在不同項(xiàng)目中的遇到這個(gè)異常也可以借鑒我這個(gè)總結(jié)。
1、從這個(gè)異常字面意思很容易得出異常原因“類找不到”。那我就針對這個(gè)原因總結(jié)以下幾點(diǎn):
1)java中唯一表示一個(gè)類:是包名+類名,所以在引用這個(gè)類的地方檢查下"包名和類名"是否都正確。
2)如果引用的地方是對的,那這一步就應(yīng)該檢查下,包含的這個(gè)類的jar包和項(xiàng)目是否引用進(jìn)來了。
3)上面這兩步,如果出錯(cuò)的話,在編譯時(shí)就會報(bào)錯(cuò),但是在有些環(huán)境下就不會的。比如在android的xml布局中有時(shí)就不會報(bào)錯(cuò)的,而是運(yùn)行時(shí)報(bào)錯(cuò)。
4)上面1、2兩步?jīng)]有問題的話,可是在運(yùn)行時(shí)就報(bào)錯(cuò)。咋辦,確定在項(xiàng)目在打包時(shí)候已經(jīng)把包含這個(gè)類的庫打包進(jìn)來了。
上面就是我對這異常的總結(jié),有需要的同學(xué)可以參考借鑒下。
2、到這一步,我來解決遇到一個(gè)實(shí)際問題。我的java web項(xiàng)目每次運(yùn)行時(shí)候都報(bào)這個(gè)錯(cuò)"org.apache.catalina.LifecycleException: Failed to start component",如下圖所示:
3、在這里我很簡單的看了下,就是類找不到嗎?以為很簡單就解決了,可結(jié)果為了這個(gè)問題,我大概花了2天時(shí)間才終于找到根結(jié)所在,好了,廢話不多說,進(jìn)入主題"類找不到"我看了下,如果類找不到,應(yīng)該在編譯時(shí)就報(bào)錯(cuò)的,myeclipse在檢查項(xiàng)目時(shí)應(yīng)該也會報(bào)錯(cuò),可是我卻發(fā)現(xiàn)沒有錯(cuò)誤,如下圖所示:
4、我就奇怪了,然后又檢查下依賴,發(fā)現(xiàn)相應(yīng)的類庫都導(dǎo)入進(jìn)來了。如下圖所示:
5、結(jié)果我又想,難道是版本問題,結(jié)果把錯(cuò)誤往百度一粘,搜了下發(fā)現(xiàn)確實(shí)有人說是版本或包沖突問題;結(jié)果我就檢查依賴關(guān)系,讓多數(shù)類庫依賴同一版本的類庫。
6、結(jié)果心想這次可就要解決了,可惜又不行了,一運(yùn)行還是報(bào)重復(fù)的錯(cuò)??吹竭@里的同學(xué),如果是老鳥應(yīng)該會猜到是運(yùn)行時(shí)報(bào)錯(cuò)了,那應(yīng)該就是運(yùn)行時(shí)找不到類庫。如果你是這么想那就對了一半,結(jié)果我就檢查tomcat這個(gè)項(xiàng)目下WEB-INF/lib目錄,一看果然是空的。
7、那我就想為什么這個(gè)目錄是空的,按理說在打包時(shí)候應(yīng)該會把類庫放到這個(gè)目錄下面。所以我就檢查下了,這個(gè)pom里面的打包配置,果然發(fā)現(xiàn)打包的時(shí)候有如下配置導(dǎo)致沒有把jar庫打包到這個(gè)目錄下面,如下圖所示:
8、至于這個(gè)是什么意思,簡單理解就是打包的時(shí)候不包括項(xiàng)目下的jar庫,這樣就導(dǎo)致項(xiàng)目部署到tomcat上去的時(shí)候,一運(yùn)行就報(bào)上面剛開始說的錯(cuò)。
9、好了,到這我的講解就該結(jié)束了。本文可能專業(yè)技術(shù)含量比較高,不是一篇通用的技術(shù)文。但我的用意是希望其他同學(xué)遇到相同問題,不要再經(jīng)歷我這兩天搜索再分析,搜索再分析...這樣的重復(fù)勞動。也許你遇到可能不是本文類似的情況,但是我希望本文的分析方法對你有所幫助。
相關(guān)推薦:
MyEclipse怎么實(shí)現(xiàn)包的層次放置?
Myeclipse怎么調(diào)試并查看查看變量值的變化?
相關(guān)文章
MyEclipse編輯的時(shí)候光標(biāo)變成黑塊該怎么辦?
MyEclipse編輯的時(shí)候光標(biāo)變成黑塊該怎么辦?很多朋友發(fā)現(xiàn),MyEclipse中編輯代碼的時(shí)候,光標(biāo)變得很粗,又黑,這是怎么回事?下面我們就來看看詳細(xì)的教程,需要的朋友可以參2016-07-22MyEclipse2015怎么設(shè)置輸入首字母自動提示?
MyEclipse2015怎么設(shè)置輸入首字母自動提示?MyEclipse開發(fā)項(xiàng)目的時(shí)候,最浪費(fèi)時(shí)間的就是一直輸入代碼,如果要是輸入一個(gè)字母就立刻提示接下來的詞組就好了,下面我們就來看2016-07-19MyEclipse中安裝了jad反編譯插件不能使用該怎么辦?
MyEclipse中安裝了jad反編譯插件不能使用該怎么辦?MyEclipse開發(fā)項(xiàng)目的時(shí)候,需要查看.class文件,但是查看時(shí)該文件顯示的格式又不是我們想要的,我們需要安裝jad反編譯插2016-07-17myeclipse中怎么自動生成getter和setter?
myeclipse中怎么自動生成getter和setter?myeclipse可以快速的編寫代碼,提高效率,提高代碼正確性,該怎么自動生成getter和setter呢?請看下文詳細(xì)介紹,需要的朋友可以參2016-07-14MyEclipse怎么實(shí)現(xiàn)包的層次放置?
MyEclipse怎么實(shí)現(xiàn)包的層次放置?MyEclipse中新建包以后,想嵌入包的時(shí)候,發(fā)現(xiàn)包是這樣平鋪的,該怎么辦呢?下面我們就來看看MyEclipse實(shí)現(xiàn)包的層次放置的詳細(xì)教程,需要2016-06-28MyEclipse怎么配置jdk? myeclipse配置jdk的圖文教程
MyEclipse怎么配置jdk?在使用MyEclipse編程的時(shí)候,需要裝配jdk,但是很多朋友不知道該怎么裝配,今天我們就來看看myeclipse配置jdk的圖文教程,需要的朋友可以參考下2016-05-16- myeclipse中怎么顯示編程代碼的行序號?myeclipse編程的時(shí)候,想將代碼行的序列號顯示出來,方便查找,該怎么設(shè)置呢?下面我們就來看看這個(gè)問題的解決辦法,,需要的朋友可2016-05-04
MyEclipse8.5導(dǎo)入java項(xiàng)目后會出現(xiàn)紅色波浪線怎么辦?
MyEclipse8.5導(dǎo)入java項(xiàng)目后會出現(xiàn)紅色波浪線怎么辦?使用MyEclipse8.5導(dǎo)入項(xiàng)目的時(shí)候總是出現(xiàn)一些情況,比如代碼下面會出現(xiàn)紅色的波浪線,但是代碼并沒有問題,該怎么辦呢2016-04-27myeclipse2014怎么打開web開發(fā)項(xiàng)目?
myeclipse2014怎么打開web開發(fā)項(xiàng)目?myeclipse2014開發(fā)項(xiàng)目的時(shí)候需要瀏覽web項(xiàng)目,該怎么打開瀏覽呢?下面我們來看看myeclipse2014打開web開發(fā)項(xiàng)目的教程2016-04-26myeclipse2014導(dǎo)入web項(xiàng)目后頁面中文顯示亂碼怎么辦?
myeclipse2014導(dǎo)入web項(xiàng)目后頁面中文顯示亂碼怎么辦?出現(xiàn)亂碼問題,第一個(gè)想法就是默認(rèn)編碼不同而產(chǎn)生的錯(cuò)誤,今天我們就來看看詳細(xì)的解決辦法,需要的朋友可以參考下2016-04-26