溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用IDEA啟動(dòng)項(xiàng)目遇見ClassNotFoundException問題怎么辦

發(fā)布時(shí)間:2020-07-20 09:23:15 來源:億速云 閱讀:890 作者:小豬 欄目:編程語(yǔ)言

小編這次要給大家分享的是使用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. 找到原因&#8203;

筆者按照前面的 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 包列表:

使用IDEA啟動(dòng)項(xiàng)目遇見ClassNotFoundException問題怎么辦

仔細(xì)找了一會(huì)兒,發(fā)現(xiàn)竟然沒有找到第 1 步添加的 mysql 的 jar 包。找到了問題的原因,下面就列出三種解決辦法。

5. 添加Module的 Dependencies

方式一

  • 打開添加 Dependencies 的彈窗
  • 添加 mysql jar包

點(diǎn) + 號(hào),然后選擇 Library

使用IDEA啟動(dòng)項(xiàng)目遇見ClassNotFoundException問題怎么辦

點(diǎn) Add Selected 保存。

方式二 選中模塊后右鍵

使用IDEA啟動(dòng)項(xiàng)目遇見ClassNotFoundException問題怎么辦

在彈出的菜單中選擇 Reimport ,則會(huì)重新從 pom.xml 里解析并下載依賴。

方式三

如果你在在開發(fā)過程中新建了一個(gè)模塊,然后刪除了該模塊,后邊又新建了一個(gè)相同名字的模塊,則依賴也是引不進(jìn)來的。 這是因?yàn)?IDEA 默認(rèn)已經(jīng)刪除的模塊將不再使用,解決辦法:

打開 項(xiàng)目目錄 .idea/misc.xml 文件:

使用IDEA啟動(dòng)項(xiàng)目遇見ClassNotFoundException問題怎么辦

刪除掉圈紅的該行(對(duì)應(yīng)你之前刪掉的模塊名)

重新新建同名的模塊,依賴就可以正常導(dǎo)入。

三. 總結(jié)

  •  遇到這種情況,先確認(rèn)代碼級(jí)別是否有什么遺漏或者配置文件是否格式有錯(cuò)誤,注意不要忘記執(zhí)行 clean 、install、package ;
  • 可以在命令行執(zhí)行 Jar 包:

如果仍然報(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ò)的話,可以把它分享出去給更多人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI