我正在尝试使用 sqlite 为 Android 应用程序设置一个简单的数据库,但出现以下错误:
java.lang.ClassNotFoundException: org.sqlite.JDBC
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:171)
at testDB.main(testDB.java:16)
这是我的代码:
public class testDB {
public static void main(String args[]) {
Connection c = null;
try {
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:/Users/Dropbox/csProject/test.db", "", "");
}
}
我已在库中添加了 sqlite-jdbc4-3.8.2-SNAPSHOT.jar,并且我还尝试在我的主目录中创建路径,但仍然遇到相同的错误..
您必须将 .jar 添加到您的项目中。您只需打开 Eclipse,右键单击 .jar 文件,然后添加到项目即可。
您可以直接将 sqlite-jdbcXXX.jar 添加到您的 tomcat/lib 中。
就我而言,我使用的是 gradle 并且需要添加
dependencies {
implementation 'org.sqlite:sqlite-jdbc:3.25.2'
}
对我来说,在 intelliJ 中添加 .jar 文件的路径有帮助:
并且不再需要添加一些代码,例如,一切正常
try{
Class.forName("org.sqlite.JDBC");
}catch(Exception e){
...
}
我认为问题是由jar注册问题引起的,而不是由延迟包加载引起的