将sql与java一起使用-编译成.jar-“;ClassNotFoundException com.mysql.jdbc.Driver“;

将sql与java一起使用-编译成.jar-“;ClassNotFoundException com.mysql.jdbc.Driver“;,java,sql,jar,Java,Sql,Jar,我想尝试在Java中使用SQL,所以我下载了mysql-connector-Java-5.1.18-bin.jar 我正在使用Eclipse,所以我进入Eclipse,Project->Properties并添加了jar文件 我还将以下内容添加到我的类路径中: C:\Users\shahin\Desktop\mysql-connector-java-5.1.18\com\mysql\jdbc\ C:\Users\shahin\Desktop\mysql-connector-java-5.1.18

我想尝试在Java中使用SQL,所以我下载了mysql-connector-Java-5.1.18-bin.jar

我正在使用Eclipse,所以我进入Eclipse,Project->Properties并添加了jar文件

我还将以下内容添加到我的类路径中:

  • C:\Users\shahin\Desktop\mysql-connector-java-5.1.18\com\mysql\jdbc\
  • C:\Users\shahin\Desktop\mysql-connector-java-5.1.18\mysql-connector-java-5.1.18-bin.jar 它在Eclipse中运行良好,但当我运行。Jar文件我得到了这个错误:

    Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Unknown Source)
            at Main.main(Main.java:15)
    

    这是因为运行jar时,
    mysql-connector-java-5.1.18-bin.jar
    不在类路径中

    .jar
    文件中应该有一个
    META-INF/MANIFEST.MF
    文件。您需要在该文件中为类路径输入一个条目,该条目指向
    mysql-connector-java-5.1.18-bin.jar
    文件所在的位置:

    Class-Path: path/to/mysql-connector-java-5.1.18-bin.jar
    
    注意,这可能是您的jar本地的。一种常见的方法是在jar所在的
    lib
    子目录中包含您所依赖的其他jar:

    Class-Path: lib/mysql-connector-java-5.1.18-bin.jar
    

    您的mysql.jar类路径很可能已关闭。您的jar是否位于mysql jar附近?(如果没有指向它)要测试这一点,您可以将两者放在同一个目录中,看看它是否运行。

    什么意思,“当我运行jar文件时”?你是怎么启动的?如果我把它放在罐子里,那会是什么样子/jar-file.jar?你不能把它放在你的jar里。为了完整起见,你不需要它,你只需要在执行时确保它在类路径上。这是一种方法。(除非它被分发,否则不确定它是最好的,但这是一个不同的讨论:)如果其他人想要运行它,我必须将jar和mysql…jar放在一个文件夹中?这太奇怪了。。当我将类路径:添加到清单文件时,它会给我一个“找不到主类”main“……如果我没有在清单文件中包含类路径,它会说classNotFound com.mysql.Driver