一. 错误现象
本地开发 SpringBoot 项目的时候,在集成 MyBatis 查询数据库的时候,使用 IDEA 启动项目的时候,有时候会遇见如下的报错:
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) .......
二. 正确的解决姿势
1. 是否添加了mysql 驱动
去 pom.xml 里查看是否添加了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 包列表:
仔细找了一会儿,发现竟然没有找到第 1 步添加的 mysql 的 jar 包。找到了问题的原因,下面就列出三种解决办法。
5. 添加Module的 Dependencies
方式一
点 + 号,然后选择 Library :
点 Add Selected 保存。
方式二 选中模块后右键
在弹出的菜单中选择 Reimport ,则会重新从 pom.xml 里解析并下载依赖。
方式三
如果你在在开发过程中新建了一个模块,然后删除了该模块,后边又新建了一个相同名字的模块,则依赖也是引不进来的。 这是因为 IDEA 默认已经删除的模块将不再使用,解决办法:
打开 项目目录 .idea/misc.xml 文件:
删除掉圈红的该行(对应你之前删掉的模块名)
重新新建同名的模块,依赖就可以正常导入。
三. 总结
如果仍然报同样的错误,则还是在代码级别上有错误,需要仔细的排查;
如果不报错,那就可以确定是 IDEA 在某处的设置有问题,比如 Jar 包的版本默认选择不对、mvn选择的版本过低、module 的依赖没有引进来等。
到此这篇关于使用IDEA启动项目遇见ClassNotFoundException的正确解决姿势的文章就介绍到这了,更多相关使用IDEA启动项目遇见ClassNotFoundException的正确解决姿势内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!
本文向大家介绍idea启动springmvc项目时报找不到类的解决方法,包括了idea启动springmvc项目时报找不到类的解决方法的使用技巧和注意事项,需要的朋友参考一下 推荐阅读 idea官网下载链接(对应版本号下载): https://www.jetbrains.com/idea/download/other.html IDEA2020.2.2激活与IntelliJ IDEA2020注册码
本文向大家介绍springBoot项目启动类启动无法访问的解决方法,包括了springBoot项目启动类启动无法访问的解决方法的使用技巧和注意事项,需要的朋友参考一下 网上也查了一些资料,我这里总结。下不来虚的,也不废话。 解决办法: 1、若是maven项目,则找到右边Maven Projects --->Plugins--->run(利用maven启动)则可以加载到webapp资源 2、上面方法
本文向大家介绍SpringBoot+jsp项目启动出现404的解决方法,包括了SpringBoot+jsp项目启动出现404的解决方法的使用技巧和注意事项,需要的朋友参考一下 通过maven创建springboot项目启动出现404 application.properties配置 项目结构 控制器方法 启动项目访问localhost:8080,出现404 Whitelabel Error Pag
Spring Boot是否可以在上下文中正确地加载旧的jar?旧jar中的pom文件是否不会受到影响,因为它引用了一些父级的spring版本以及使用相同版本的jar?或者这些JAR只使用spring boot添加的依赖关系? 有人能建议我哪里做错了吗?
本文向大家介绍解决maven启动Spring项目报错的问题,包括了解决maven启动Spring项目报错的问题的使用技巧和注意事项,需要的朋友参考一下 第一个问题 出现原因主要是 javax.servlet-api 在运行时将spring容器当成了servlet容器出现类型转换错误。 解决方法: 在pom.xml文件中修改 javax.servlet-api 的作用域为provided 第二个问题
本文向大家介绍idea 解决用骨架创建项目过慢的操作方式,包括了idea 解决用骨架创建项目过慢的操作方式的使用技巧和注意事项,需要的朋友参考一下 如下图:点击加号添加键值对: archetypeCatalog internal 补充知识:idea+maven+tomcat报404 我的解决办法是直接将war包路劲改成webapp路径 以上这篇idea 解决用骨架创建项目过慢的操作方式就是小编分享