您好,登錄后才能下訂單哦!
小編這次要給大家分享的是使用IDEA啟動(dòng)項(xiàng)目遇見ClassNotFoundException問題怎么辦,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
一. 錯(cuò)誤現(xiàn)象
本地開發(fā) SpringBoot 項(xiàng)目的時(shí)候,在集成 MyBatis 查詢數(shù)據(jù)庫(kù)的時(shí)候,使用 IDEA 啟動(dòng)項(xiàng)目的時(shí)候,有時(shí)候會(huì)遇見如下的報(bào)錯(cuò):
Caused by: java.sql.SQLException: com.mysql.jdbc.Driver at com.alibaba.druid.util.JdbcUtils.createDriver ...... Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.net.URLClassLoader.findClass(URLClassLoader.java:382) .......
二. 正確的解決姿勢(shì)
1. 是否添加了mysql 驅(qū)動(dòng)
去 pom.xml 里查看是否添加了mysql 驅(qū)動(dòng)。如果之前沒有添加,需要引入 mysql 的 jar 驅(qū)動(dòng):
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
重新編譯后運(yùn)行,如果還是報(bào)這個(gè)錯(cuò),看第 2 步。
2. 執(zhí)行 mvn install
執(zhí)行 IDEA 里的 mvn install 命令,下載可能缺失的 jar 包。 如果重新編譯后運(yùn)行還是不行,看第 3 步。
3. 檢查配置文件是否有錯(cuò)
.yml 和 .properties 的配置文件對(duì)格式都有嚴(yán)格要求,確認(rèn)一下自己的數(shù)據(jù)庫(kù)連接配置是否有格式錯(cuò)誤。
比如:
行首和行位是否有空格之類的。 4. 找到原因​
筆者按照前面的 3 個(gè)步驟反復(fù)檢查確認(rèn),依然還是報(bào)這個(gè)錯(cuò)誤,折騰了半天。會(huì)不會(huì) IDEA 哪個(gè)地方的設(shè)置有問題。
命令行執(zhí)行jar包
為了驗(yàn)證猜想,于是進(jìn)到 jar 包所在的工程目錄下面, 在命令行下直接使用java -jar 的方式啟動(dòng):
java -jar projectName.jar`
卻發(fā)現(xiàn)服務(wù)能夠正常啟動(dòng)起來,沒有報(bào)java.lang.ClassNotFoundException這個(gè)錯(cuò)誤。 由于我的項(xiàng)目是 SpringBoot 聚合工程,于是就猜測(cè)會(huì)不會(huì)是這個(gè) 模塊下的依賴沒有被 IDEA 讀到呢?
驗(yàn)證猜想
通過 File -> Project Structure -> Project Settings -> Modules 打開 彈窗,選中該模塊,在右側(cè)找到 Dependencies 選項(xiàng)卡并打開,在下面會(huì)出現(xiàn)該模塊依賴的 jar 包列表:
仔細(xì)找了一會(huì)兒,發(fā)現(xiàn)竟然沒有找到第 1 步添加的 mysql 的 jar 包。找到了問題的原因,下面就列出三種解決辦法。
5. 添加Module的 Dependencies
方式一
點(diǎn) +
號(hào),然后選擇 Library
:
點(diǎn) Add Selected
保存。
方式二 選中模塊后右鍵
在彈出的菜單中選擇 Reimport
,則會(huì)重新從 pom.xml 里解析并下載依賴。
方式三
如果你在在開發(fā)過程中新建了一個(gè)模塊,然后刪除了該模塊,后邊又新建了一個(gè)相同名字的模塊,則依賴也是引不進(jìn)來的。 這是因?yàn)?IDEA 默認(rèn)已經(jīng)刪除的模塊將不再使用,解決辦法:
打開 項(xiàng)目目錄 .idea/misc.xml 文件:
刪除掉圈紅的該行(對(duì)應(yīng)你之前刪掉的模塊名)
重新新建同名的模塊,依賴就可以正常導(dǎo)入。
三. 總結(jié)
如果仍然報(bào)同樣的錯(cuò)誤,則還是在代碼級(jí)別上有錯(cuò)誤,需要仔細(xì)的排查;
如果不報(bào)錯(cuò),那就可以確定是 IDEA 在某處的設(shè)置有問題,比如 Jar 包的版本默認(rèn)選擇不對(duì)、mvn選擇的版本過低、module 的依賴沒有引進(jìn)來等。
看完這篇關(guān)于使用IDEA啟動(dòng)項(xiàng)目遇見ClassNotFoundException問題怎么辦的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。