java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解決方式


        昨天整理桌面的時候將桌面的一堆文件移動到F盤去了,結果導致原來建的一些項目名稱所有出現紅色感嘆號,打開一看,原來是由於我把hibernate的那些jar包移走了。導致user library里那些jar在原來的路徑里找不到了,所以出現紅色感嘆號,在寫新的項目的時候就不能把原來寫的項目copy過來改了。僅僅好又一次新建了個java project,然后又一次導包,編好代碼執行一下。報了例如以下錯誤:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。

       錯誤顯示沒有找到MySQL的驅動,第一選擇就是去查看MySQL驅動包究竟導入沒,看了一下確實導入了。難道是我的配置文件出錯了?不應該啊,我從hibernate文檔里copy進去的,並且前幾天也是這樣copy進去的。沒出問題,但還是細致去看了一眼,並跟曾經的項目對比了一下 。沒錯。

        既然配置文件沒出問題,僅僅可能是MySQL驅動包出問題了。果斷把這個驅動包remove了,再執行。還是這個錯誤。

也就是說摩羅我這個驅動包放在項目里和沒放在項目里沒不論什么差別,難道是包出問題了?應該不會,沒動過,僅僅好再把驅動包導入。這時奇跡出現了,執行成功了。

細致回憶為啥是這樣,后來才發現原來我剛開始導入這個驅動包手快直接ctrl+v復制進去了,並沒有add to build path里去。果斷把這個包remove了,再試試直接復制進去,果然又出現這個情況了。

       事實上導包的時候是能夠復制進去,但必須進行add to build path這個步驟,或者直接通過add external jars來導包。

       最后講講這個問題在web項目里咋解決:

        a.確認包已經被導入webproject文件夾。
        b.把mysql-connector-java-3.1.13-bin.jar 導入到tomcat的lib文件夾以下就ok了。

        由於在web項目中。當Class.forName("om.mysql.jdbc.Driver");時myeclipse是不會去查找字符串,不會去查找驅動的。所以僅僅須要把mysql-connector-java-3.1.13-bin.jar   copy到tomcat下lib文件夾就能夠了。

        當然在在java項目中。僅僅須要引入mysql-connector-java-5.1.7-bin.jar就能夠執行java項目。

        最后插一個新犯的錯誤,我原來做項目都用的鐵通的無線網,今天用聯通的。然后又出現了錯誤:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。首先就排除了上面那些錯誤原因。由於全是從原來項目copy項目環境過來的,jar包沒問題,引入的方式也是正確的。所以就懷疑是連接時的ip寫錯了,畢竟今天換網才出現的這個問題。並且我的MySQL是裝在虛擬機里的,於是進虛擬機->執行->cmd->ipconfig里查了ip。發現IP由原來的192.168.199.230變成192.168.1.111,並且主機的ip地址也從192.168.199.160變成192.168.1.108。顯然ip地址變了,於是就把配置文件中的MySQLserver地址改成了192.168.1.111,然后順利連接成功了。

        最后解釋一下很多人疑惑的問題:為什么自己從ip138站點查出來的ip地址和自己通過cmd->ipconfig查出來的地址為啥是不一樣的?事實上這個192.168.*.*是私網ip地址,通過地址轉化(NAT)就能夠轉化成公網ip了。而這個公網IPj就是你從ip138站點上查出來的那個IP地址。

       這里插一句題外話。使用虛擬機的時候有可能出現虛擬機ping主機能ping通,主機ping虛擬機卻ping不通,這個問題在虛擬機配置的時候將NAT模式切換成橋接模式就能夠解決。

      總結一下解決的方法:

       1.檢查MySQL驅動包有問題沒,在網上下載的MySQL驅動包有可能會出問題。盡量下載那種壓縮包。摩羅我曾經就連着下載了好幾個jar包都出問題,最后又一次下載了個 壓縮包。而不是直接的jar包才解決,由於壓縮包不會那么easy丟失文件。

       2.假設MySQL和MyEclipse不是裝在同一台機器上,或者是MySQL是裝在虛擬機里的。必須查看連接語句里的ip地址是否正確。

       3.檢查jar包導入的方式正確與否。假設是直接復制進去的,就必須add to build path或者直接通過add external jars來導包。

       4.假設是web項目,就必須把mysql-connector-java-3.1.13-bin.jar   copy到tomcat下lib文件夾下。然后project->clean一下。

       5.還不能解決。能夠考慮把mysql-connector-java-3.1.13-bin.jar的路徑放到classpath以下


尊重版權,轉載請不要刪除下方二維碼並注明本文鏈接

                           歡迎關注行者摩羅微信公眾號(xingzhemoluo),共同交流編程經驗,掃描下方二維碼就可以;

                                                


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM