私のコードで JDBC sqlite を使用しているときに奇妙なエラーが発生しorg.sqlite.JDBC
、Windows で正常にコンパイルおよび実行されました。しかし、Ubuntuに移動しようとすると、次のように表示され始めました:
Exception in thread "main" java.lang.ClassNotFoundException: org.sqlite.JDBC
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:259)
at mall.SQLiteJDBC.<init>(SQLiteJDBC.java:27)
at mall.AllegroReader.<init>(AllegroReader.java:33)
at mall.Mall.main(Mall.java:31)
私はjarと同じディレクトリにある両方のバージョンで実行してjava -classpath "sqlite-jdbc-3.7.2.jar" -jar Mall.jar"
おり、java -classpath "sqlite-jdbc4-3.8.2-SNAPSHOT.jar" -jar Mall.jar
クラスパスを指定してさまざまなオプションを試しましたが、まったく同じように動作します。openjdk と oracle jdk を試しました。Ubuntuで再構築、ant .xmlの変更、パスの変更などを試みました。
何が起こっているのかわかりません。助けてください。
私のdistディレクトリ内で何が起こるかは次のとおりです。
work1@workwork:/var/www/mall/dist$ ls
mall.db Mall.jar Mall.jar.old sqlite-jdbc-3.8.4.3-SNAPSHOT.jar
work1@workwork:/var/www/mall/dist$ java -classpath "sqlite-jdbc-3.8.4.3-SNAPSHOT.jar:Mall.jar" Mall
Error: Could not find or load main class Mall