我一直在尝试使用以下代码加载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添加到类路径中,我已经完成了。
非常感谢任何帮助。
答案 0 :(得分:9)
我已添加驱动程序的路径 (MySQL的连接器的Java-3.1.14-bin.jar) 到我的课程路径
该例外告诉您没有正确执行此操作。
你是如何设置CLASSPATH的?如果它是一个环境变量,您将学习IDE和应用服务器忽略它。 不要使用它。
也不要将它放在Java JDK的/ ext目录中。
正确的做法取决于你如何使用它:
答案 1 :(得分:9)
在IntelliJ上,这就是我解决这个问题的方法:
档案>项目结构>图书馆> +
找到jdbc连接器。对我来说,它是在C:\ Users \ MyName.InteliJIdea13 \ config \ jdbc-drivers
答案 2 :(得分:1)
java中有两个类路径。构建路径和运行路径。在将.java文件编译为.class文件时使用构建路径。在像C这样的语言中,您有一个链接器阶段,当您在一堆目标文件上运行链接器时,该阶段会填充所有缺少的符号。这就是为什么.exe(windows)或其他原生二进制文件(linux)没有运行路径。 Java略有不同,因为编译的.class定义在需要时由jvm加载。
这样做的结果是你必须为jvm提供运行时类路径。在命令行中,您使用java.exe,它默认搜索几个地方,包括$ CLASSPATH,当前目录/ lib,以及您提供给-cp选项的任何内容。
IDE与命令行不同,因为它们试图保护您免受运行java.exe的一些麻烦,并提供所有.class文件所在的位置(这对于大型项目来说是繁重的)。 / p>
大多数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