在Java中使用JDBC的ClassNotFoundException

时间:2013-10-24 10:26:14

标签: java mysql jdbc

我正在尝试使用JDBC连接到MYOB数据文件,以便我可以编写Java程序来读取该文件的一些内容。

由于我不熟悉,我一直在查看各种教程,并且它们都在同一位置错误ClassNotFoundException失败,这使我相信我错过了所有教程都认为很明显的步骤。

当我尝试运行以下行时出现错误(根据我正在遵循的当前教程:

Class.forName("com.mysql.jdbc.Driver");

确切的错误是:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)

有人可以指出我正在使用this tutorial的正确方向,但我不确定为什么无法找到Class

2 个答案:

答案 0 :(得分:1)

您在http://dev.mysql.com/downloads/connector/j/5.0.html

的类路径下载中缺少mysql连接器jar文件

顾名思义,ClassNotFoundException在Java中是java.lang.Exception的子类,当 Java虚拟机尝试加载特定类并且未找到时类路径中请求的类。

关于此异常的另一个重点是,它是一个已检查的异常,并且您需要在使用可能通过使用try在Java中抛出ClassNotFoundException的方法时提供显式异常处理-catch块或使用throws子句。

Oracle docs

public class ClassNotFoundException
 extends ReflectiveOperationException

当应用程序尝试使用以下命令通过其字符串名称加载类时抛出:

  • 类Class。中的forName方法。
  • ClassLoader类中的findSystemClass方法。
  • ClassLoader类中的loadClass方法。

但是找不到具有指定名称的类的定义。

答案 1 :(得分:-1)

下载mysql驱动程序jar文件并将其添加到您的类路径中,它将解决您的问题