1

Java から sqlite データベースに接続しようとしています。私はWindowsでプログラミングしています。sqlite ドライバーをダウンロードし、Windows 環境変数にクラスパスを設定しました。このコードが呼び出されると、classNotFoundException が発生します。

   Class.forName(sDriver);  

ここで、sDriver は「org.sqlite.JDBC」です。例外からのスタック トレースは次のとおりです。

java.lang.ClassNotFoundException: org.sqlite.JDBC
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at com.ib.client.examples.Mydb.setConnection(Mydb.java:49)
at com.ib.client.examples.Mydb.init(Mydb.java:33)
at com.ib.client.examples.Mydb.<init>(Mydb.java:17)
at com.ib.client.examples.Example1.run(Example1.java:40)

どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

2

どの JDBC ドライバーを使用しようとしているのかわかりませんが、これまでに見つけた最高の SQLite JDBC ドライバーは、Xerial Project によって作成されたものです: http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC

ドライバーの最新バージョンは、 http ://www.xerial.org/maven/repository/snapshot/org/xerial/sqlite-jdbc/3.7.8-SNAPSHOT/ にあります。

Windows (32 および 64 ビット)、Linux (32 および 64 ビット)、および MacOS (32 および 64 ビット) 用のネイティブ ドライバーを使用し、サポートされていないプラットフォームの場合は純粋な Java 実装にフォールバックします。

すべてのネイティブ ライブラリ (dll など) はドライバーの JAR ファイルに含まれているため、それらの読み込みについて心配する必要はありません。適切なライブラリを自動検出します。

編集: コマンド ラインからプログラムを実行しようとしている場合は、クラスパスですべての jar ファイルを指定する必要があります。クラスパス環境変数にパスを設定するだけでは不十分です。

例:

java YourProgram -cp classes;lib/sqlite.jar;c:\libs\java\lib1.jar
于 2012-07-06T12:05:59.953 に答える