java.lang.ClassNotFoundException : com. mysql.jdbc.Driver(在 jre 的库中)

标签 java mysql jdbc driver

我已将 mysql-connector-java-5.1.18-bin.jar 添加到 jre 和 jdk 库中。这是:

C:\Windows\system32>javap java.io.Bits
    Compiled from "Bits.java"
    class java.io.Bits extends java.lang.Object{
        java.io.Bits();
        static boolean getBoolean(byte[], int);
        static char getChar(byte[], int);
        static short getShort(byte[], int);
        static int getInt(byte[], int);
        static float getFloat(byte[], int);
        static long getLong(byte[], int);
        static double getDouble(byte[], int);
        static void putBoolean(byte[], int, boolean);
        static void putChar(byte[], int, char);
        static void putShort(byte[], int, short);
        static void putInt(byte[], int, int);
        static void putFloat(byte[], int, float);
        static void putLong(byte[], int, long);
        static void putDouble(byte[], int, double);
    }


    C:\Windows\system32>javap com.mysql.jdbc.Driver
    ERROR:Could not find com.mysql.jdbc.Driver

但是当我显示同一个文件的直接类路径时,没问题。

C:\Windows\system32>javap -classpath "B:\Java\Tools\mysql-connector-java-5.1.18\
mysql-connector-java-5.1.18\mysql-connector-java-5.1.18-bin.jar" com.mysql.jdbc.
Driver
Compiled from "Driver.java"
public class com.mysql.jdbc.Driver extends com.mysql.jdbc.NonRegisteringDriver i
mplements java.sql.Driver{
    public com.mysql.jdbc.Driver()       throws java.sql.SQLException;
    static {};
}

当我使用 Thilo's answer 时问题开始了动态加载驱动程序。没有 IOException。但是在字符串 Class.forName(driver).newInstance() 上我有 ClassNotFoundException 异常。将jar加入jre后,没有任何变化。这有什么问题?

最佳答案

After adding jar to jre 到底是什么意思?我担心 mysql-connector-java-5.1.18-bin.jar 没有正确添加到类路径中。 ClassNotFoundException 仅在可搜索类路径中不存在该类时抛出。 JDK自带的jar都是bootstrap类,java可以加载。然而,所有第三方类都需要在可搜索的系统或应用程序级类路径中设置,以便 java 可以加载指定的类参数。

在您的命令提示符下尝试执行以下命令并执行您的 java 类。

set mysqljar="absolute-path-to\mysql-connector-java-5.1.18-bin.jar"  
set classpath=%classpath%;.;%mysqljar%

只要这个 jar 在可搜索的类路径中可用,所有类加载器都可以从这个 jar 中找到并加载类。尝试此更改并运行 Thilo 的示例,它应该可以正常工作。

还有 read more on class paths, for command line, here .

关于java.lang.ClassNotFoundException : com. mysql.jdbc.Driver(在 jre 的库中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10602899/

相关文章:

java - 如何同时读取和写入数据到同一个文件

java - 将curl命令翻译成java/android

python - 如何使用 mysql 验证 flask/python 中的凭据?

php - MySQL日期转换(“01/Jan/2015”到 “01012015”)

java - Servlet DispatcherServlet 的 Servlet.init() 抛出异常

java - 将非标准化数据集设置为嵌套文档

java - 为什么JDBC是动态加载而不是导入的?

java - 记录遗留 Java 应用程序的带宽使用情况

java - 如何使用二进制搜索来查找具有特定权重的数组中的第一个元素(不同数组中的另一个元素)?

php - 如何创建表之间的关系?