我无法加载的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目录中。
做正确的方式取决于你如何使用它:
- 如果你像Eclipse或的IntelliJ一个IDE内运行,您必须将JAR添加到库中。
- 如果您正在命令shell中运行,请在编译时使用-p选项来运行javac.exe,运行时请使用java.exe。
- 如果您在Web应用程序中使用它,您可以先将它放入WAR文件的WEB-INF/lib目录中。如果您使用的是Tomcat 6等servlet/JSP引擎,请将其放入Tomcat/lib目录中。
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
谢谢你的回答,我确实设置了环境CLASSPATH变量。我正在使用Netbeans,并且像你所说的那样将它添加到库中。非常感谢你。 – kevinAlbs 2011-05-28 23:33:34