如何解决 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Posted

技术标签:

【中文标题】如何解决 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver【英文标题】:How to solve java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 【发布时间】:2014-02-16 15:19:17 【问题描述】:

我编写了这个 java 应用程序来响应来自命令行的数据并将其存储到数据库中:

 import java.util.Scanner;
import java.sql.*;


public class Program 


    public static void main(String[] args)throws ClassNotFoundException 


    


        Connection conn=null;

        try 

            Class.forName("com.mysql.jdbc.Driver");

             conn = DriverManager.getConnection("jdbc:mysql://localhost/DevOps_DB","root","root");


             PreparedStatement st = conn.prepareStatement("INSERT INTO pers " + "VALUES ('"+args[0]+"'); ");
             st.executeUpdate();


         



        catch (SQLException ex) 

            System.out.println("SQL Exception : "+ ex.getMessage());

            System.out.println("Vendor Error : "+ ex.getErrorCode());

        


        catch(ClassNotFoundException ex) 

            ex.printStackTrace();


        



//      
//      for(String arg : args)            
//         
//           System.out.println(arg);            
//      




    






但我有以下异常:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:190)
    at Program.main(Program.java:18)

为什么? ...任何帮助解决问题?

编辑:

我添加了 .jar 文件,见下图:

【问题讨论】:

你是怎么运行这个的?您如何让 Java 可以使用 MySQL JDBC 驱动程序? 检查所需的类是否在您的类路径中 你的classpath中有mysql驱动吗? @kent :查看我的编辑 :) @mserioli 查看我的编辑 :) 【参考方案1】:

您需要下载mysql connector jar 文件(驱动程序实现)并将其添加到您的类路径中。

附带说明,如果您使用的是 JDBC 4.0(我认为是 Java 7 甚至 6),那么您不需要使用 Class.forName("com.mysql.jdbc.Driver");。只需将 jar 添加到类路径中。驱动程序实现将自动从类路径中搜索和加载。

【讨论】:

您确定将其添加到您正在运行的同一个项目中。 Right Click the project -- > build path -- > configure build pathIn Libraries Tab press Add External Jar and Select your jar. 由于异常清楚地表明类加载失败,因为找不到类,我建议使用java -cp pathToMySqlCJar yourMainClass 运行并查看。如果此操作成功,则您添加的 jar 未正确添加到您的项目中。尝试在 Eclipse 中重建您的项目。【参考方案2】:

您必须下载 mysql 连接器 jar 文件(驱动程序实现)并将其添加到您的类路径中。

【讨论】:

【参考方案3】:

好的,你添加了 jar.do 一件事打开服务器, 窗体窗口->显示视图->服务器 然后双击服务器

然后它将打开一个新窗口然后转到打开启动配置然后

转到类路径并再次添加 mysql-connector.jar 点击确定。

【讨论】:

【参考方案4】:

@Akari :这与 MySql 的 .jar 文件有关。尝试检查 MySql 的 .jar 是否设置为类路径。

【讨论】:

【参考方案5】:

解压mysql驱动,可以从a link下载! 并复制mysql zip的.jar文件并将其粘贴到“lib”Screenshot of the location u have to paste in into (in the interface)

【讨论】:

【参考方案6】:

使用com.mysql.cj.jdbc.Driver 代替com.mysql.jdbc.Driver

【讨论】:

以上是关于如何解决 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的主要内容,如果未能解决你的问题,请参考以下文章

云原生景观:可观察性和分析解决了什么问题?如何解决的?

如何解决 Ajax 跨域请求不到的问题

如何解决包冲突问题

如何解决包冲突问题

如何解决ajax跨域问题

MySQL 的 10048问题,如何解决?