使⽤IDEA启动项⽬遇见ClassNotFoundException的解决
⽅案
⼀. 错误现象
本地开发 SpringBoot 项⽬的时候,在集成 MyBatis 查询数据库的时候,使⽤ IDEA 启动项⽬的时候,有时候会遇见如下的报错:
Caused by: java.sql.SQLException: sql.jdbc.Driver  at com.alibaba.druid.ateDriver  ......
Caused by: java.lang.ClassNotFoundException: sql.jdbc.Driver  at
java.URLClassLoader.findClass(URLClassLoader.java:382)  .......
⼆. 正确的解决姿势
1. 是否添加了mysql 驱动
去 l ⾥查看是否添加了mysql 驱动。如果之前没有添加,需要引⼊ mysql 的 jar 驱动:
<dependency>  <groupId>mysql</groupId>  <artifactId>mysql-connector-java</artifactId>  </dependency>
重新编译后运⾏,如果还是报这个错,看第 2 步。
2. 执⾏ mvn install
执⾏ IDEA ⾥的 mvn install 命令,下载可能缺失的 jar 包。如果重新编译后运⾏还是不⾏,看第 3 步。
3. 检查配置⽂件是否有错
.yml 和 .properties 的配置⽂件对格式都有严格要求,确认⼀下⾃⼰的数据库连接配置是否有格式错误。
⽐如:
⾏⾸和⾏位是否有空格之类的。 4. 到原因
笔者按照前⾯的 3 个步骤反复检查确认,依然还是报这个错误,折腾了半天。会不会 IDEA 哪个地⽅的设置有问题。
命令⾏执⾏jar包
为了验证猜想,于是进到 jar 包所在的⼯程⽬录下⾯,在命令⾏下直接使⽤java -jar 的⽅式启动:
java -jar projectName.jar`
却发现服务能够正常启动起来,没有报java.lang.ClassNotFoundException这个错误。由于我的项⽬是 SpringBoot 聚合⼯程,于是就猜测会不会是这个模块下的依赖没有被 IDEA 读到呢?
验证猜想
通过 File -> Project Structure -> Project Settings -> Modules 打开弹窗,选中该模块,在右侧到 Dependencies 选项卡并打开,在下⾯会出现该模块依赖的 jar 包列表:mysql下载jar包
仔细了⼀会⼉,发现竟然没有到第 1 步添加的 mysql 的 jar 包。到了问题的原因,下⾯就列出三种解决办法。
5. 添加Module的 Dependencies
⽅式⼀
打开添加 Dependencies 的弹窗
添加 mysql jar包
点+号,然后选择Library:
点Add Selected保存。
⽅式⼆选中模块后右键
在弹出的菜单中选择Reimport,则会重新从 l ⾥解析并下载依赖。
⽅式三
如果你在在开发过程中新建了⼀个模块,然后删除了该模块,后边⼜新建了⼀个相同名字的模块,则依赖也是引不进来的。这是因为 IDEA 默认已经删除的模块将不再使⽤,解决办法:
打开项⽬⽬录 .l ⽂件:
删除掉圈红的该⾏(对应你之前删掉的模块名)
重新新建同名的模块,依赖就可以正常导⼊。
三. 总结
遇到这种情况,先确认代码级别是否有什么遗漏或者配置⽂件是否格式有错误,注意不要忘记执⾏ clean 、install、package ;
可以在命令⾏执⾏ Jar 包:
如果仍然报同样的错误,则还是在代码级别上有错误,需要仔细的排查;
如果不报错,那就可以确定是 IDEA 在某处的设置有问题,⽐如 Jar 包的版本默认选择不对、mvn选择的版本过低、module 的依赖没有引进来等。
到此这篇关于使⽤IDEA启动项⽬遇见ClassNotFoundException的正确解决姿势的⽂章就介绍到这了,更多相关使⽤IDEA启动项⽬遇见ClassNotFoundException的正确解决姿势内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。