欧亿体育
工作动态
我的位置: 首页 > 工作动态
超详细干货解决Exception in thread “main“ java.lang.ClassNotFoundException及No suitable driver found for jdbc
发布时间:2024-01-22 06:03
  |  
阅读量:
  |  
作者:
欧亿体育

最近一直被eclipse的WindowBuilder和java继jdbc连接Mysql的问题困扰,终于摸索出对我有用的解决方法,希望这对你也有所帮助!

首先,当你在eclipse等IDE编译器里Run数据库连接后,出现Exception in thread "main" java.lang.ClassNotFoundException的结果报错,我本人后面出现的还有illegal一串字符,非法使用,我猜测是由于使用的mysql connection java的jar包版本低,非法使用,协议禁止,不兼容的原因,事实也是如此,我本来用的是5.1.36,后面装了5.1.47的jar包导入就成功了,这里要注意的是,Mysql是5.x版本的,我用的是5.5,这里有一个常见的错误,Mysql版本要和jar包版本一致(大概是),还有一个必须注意的,事先通过cmd命令框输入java -version和javac -version看看运行环境与编译环境是否一致!!!然后如果是Java7或8的可以去网上查对应的关系,

附上大佬提供的表格链接

(37条消息) mysql-connector-java各版本及与mysql、JDK版本的对应_mysql-connector-j低版本_Lgs_1108的博客-CSDN博客

以及conncecion jar包的链接

Maven Repository: mysql » mysql-connector-java (mvnrepository.com)

主要看你的MYsql版本与之对应支持的Connector/J version 版本,关于版本怎么看,打开控制面板,打开程序与功能

查看已经下载的mysql的版本号,下载可支持对应的Connector/J version 

以我的5.1.47举例,

点击版本号,进入以下界面

 

点击jar以获取mysql  connection java的jar包

然后找到下载的jar包路径ctrl+c复制该文件

将该文件放入C:\Program Files (x86)\Java\mysqlforjdbc里(里面没有装java路径的话,则在C:\Program Files (x86)路径下建一个文件夹重命名为java,在java文件夹里再建一个文件夹重命名为mysqlforjdbc,将jar包ctrl+v粘贴到mysqlforjdbc文件夹里),然后在找到你安装JDK的java路径,以我举例,我安装到了E盘,

打开jdk,然后打开bin,再ctrl+v将jar包粘贴到bin文件夹里 ,然后进入jre里,找到lib文件夹找到文件夹里的ext文件夹,进入ext文件夹,再将jar包ctrl+v粘贴到ext文件夹里

接下来右键此电脑,选择高级系统设置,进入环境变量配置

在Classpath中,添加.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%TOMCAT_HOME%\lib\servlet-api.jar;%JAVA_HOME%\lib\mysql-connector-java-5.1.47.jar;C:\Program Files (x86)\Java\mysqlforjdbc\mysql-connector-java-5.1.47.jar;//如果有些有的话,则不必添加

 红色变量配置很重要,格式为%JAVA_HOME%\lib\(jar包的名字).jar;

C:\Program Files (x86)\Java\mysqlforjdbc\(jar包的名字).jar;(jar包的名字自己从网站下载之后,右键jar包,点击重命名,复制jar包的名字就ok了)

而No suitable driver found for jdbc我认为有两种原因,第一Mysql connector java的jar包与你的Mysql版本或者java环境不兼容,具体版本兼容问题,上文有讲到。(关于与java环境的兼容可以上网查询,这里不再赘述)

第二则是以下几点

驱动字符串出错,需注意

mysql5版本驱动字符串为“com.mysql.jdbc.Driver“

mysql8版本驱动字符串为”com.mysql.cj.jdbc.Driver“

URL格式不对:正确为 Connectionconn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/XX”,“root”,“XXXX”)

端口号后面的是数据库的名称,user和password默认的都是root,我安装的时候可以修改密码,可是我改了之后密码还是空,管理员打开命令框输入mysqladmin -u root -p回车,然后弹出Enter password:(这里要求输入的是旧密码),你可以输入你安装MYsql修改过的密码,和直接回车的空密码试试,一般就是这两个,然后弹出New password:(输入想修改成的密码就行了)。

这里修改后的密码请一定要记住!!!这是后面sqlyog等软件登录数据库的密码,别忘了

Classpath中没有加入合适的mysql_jdbc驱动

上文中提到如何在Classpath中正确的添加mysql connectior java的jar包了

上述操作百分之七八十能解决您的问题。

这篇对于解决Exception in thread "main" java.lang.ClassNotFoundException(illegal)和No suitable driver found for jdbc的文章希望对你有帮助!

如果有什么问题的话,可以私信小傅,看到了会回消息的,共同进步!