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 ファイルがありません

名前が示すようClassNotFoundExceptionに、Java はのサブクラスでjava.lang.Exceptionあり、Java 仮想マシンが特定のクラスをロードしようとして、要求されたクラスがクラスパスに見つからない場合に発生します。

この例外に関するもう 1 つの重要な点は、これはチェック済みの例外ClassNotFoundExceptionであり、try-catch ブロックまたは throws 句を使用して Java でスローされる可能性のあるメソッドを使用しているときに、明示的に例外処理を提供する必要があることです。

オラクルのドキュメント

public class ClassNotFoundException
 extends ReflectiveOperationException

アプリケーションが以下を使用して文字列名を介してクラスにロードしようとするとスローされます。

  • クラス Class の forName メソッド。
  • クラス ClassLoader の findSystemClass メソッド。
  • クラス ClassLoader の loadClass メソッド。

指定された名前のクラスの定義が見つかりませんでした。

于 2013-10-24T10:28:16.283 に答える