0

我正在尝试使用 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)

有人可以指出我目前正在使用本教程的正确方向,但我不确定为什么Class找不到。

4

1 回答 1

1

您在从http://dev.mysql.com/downloads/connector/j/5.0.html下载的类路径中缺少 mysql 连接器 jar 文件

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

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

甲骨文文档

public class ClassNotFoundException
 extends ReflectiveOperationException

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

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

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

于 2013-10-24T10:28:16.283 回答