我无法加载的JDBC驱动程序的MySQL

问题描述:

我一直在尝试用下面的代码加载JDBC的MySQL连接器:我无法加载的JDBC驱动程序的MySQL

import java.sql.*; 

public class dbTest{ 
    public static void main(String[] args) throws SQLException, ClassNotFoundException 
    { 
    Class.forName("com.mysql.jdbc.Driver"); 
    } 
} 

而且我不断收到一类未发现异常:

java.lang.ClassNotFoundException 
    at edu.rice.cs.plt.reflect.PathClassLoader.findClass(PathClassLoader.java:148) 
at java.lang.ClassLoader.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 dbTest.main(dbTest.java:6) 

我已将路径添加到驱动程序(mysql-connector-java-3.1.14-bin.jar)到我的类路径中,并进行了双重检查以确保它是正确的。我还根据我从这篇文章中读到的内容,将jar的副本添加到了我的Java安装的ext文件夹中:http://www.developer.com/java/data/jdbc-and-mysql-installation-and-preparation-of-mysql.html

我还搜索了其他已发生此问题的人的帖子,但到目前为止所有回复都有一直在说要将连接器jar添加到类路径中,我已经这样做了。

任何帮助将不胜感激。

我已经加入了驱动程序路径 (使用mysql-connector-java的3.1.14-bin.jar) 到我的类路径

的异常告诉你,你没有做它正确。

你是如何设置CLASSPATH的?如果它是一个环境变量,那么您将会了解IDE和应用程序服务器忽略它。 请勿使用它。

不要把它放在Java JDK的/ ext目录中。

做正确的方式取决于你如何使用它:

  1. 如果你像Eclipse或的IntelliJ一个IDE内运行,您必须将JAR添加到库中。
  2. 如果您正在命令shell中运行,请在编译时使用-p选项来运行javac.exe,运行时请使用java.exe。
  3. 如果您在Web应用程序中使用它,您可以先将它放入WAR文件的WEB-INF/lib目录中。如果您使用的是Tomcat 6等servlet/JSP引擎,请将其放入Tomcat/lib目录中。
+0

谢谢你的回答,我确实设置了环境CLASSPATH变量。我正在使用Netbeans,并且像你所说的那样将它添加到库中。非常感谢你。 – kevinAlbs 2011-05-28 23:33:34

java中有两个类路径。建立路径和运行路径。编译.java文件到.class文件时使用编译路径。在像C这样的语言中,当链接器运行在一组目标文件上时,链接器阶段会填充所有缺失的符号。这就是为什么.exe(Windows)或其他本地二进制文件(Linux)没有运行路径。 Java稍有不同,因为编译后的.class定义会在需要时由jvm加载。

这是什么网是你必须提供一个运行时类路径到jvm。在命令行使用java.exe,默认情况下会搜索几个地方,包括$ CLASSPATH,当前目录/ lib以及提供给-cp选项的任何地方。

IDEs与命令行有所不同,因为它们试图阻止您运行java.exe并提供所有.class文件所在的位置(这在大型项目中会很繁琐)。

大多数IDE都有某种“运行配置”选项卡,允许您在运行应用程序时指定将使用的类的某些库或位置。以下是如何在eclipse,netbeans和intellij中设置运行路径。

http://javahowto.blogspot.com/2006/06/set-classpath-in-eclipse-and-netbeans.html

http://www.jetbrains.com/idea/webhelp/run-debug-configuration-application.html

在的IntelliJ我这是怎么解决这个问题:

文件>项目结构>库> +

找到JDBC连接器。对我来说它是在C:\ Users \ MyName.InteliJIdea13 \ config \ jdbc-drivers