Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中注册Sqlite驱动程序的问题_Java_Sqlite_Driver - Fatal编程技术网

在Java中注册Sqlite驱动程序的问题

在Java中注册Sqlite驱动程序的问题,java,sqlite,driver,Java,Sqlite,Driver,我正在尝试从Java连接到sqlite数据库。我正在用Windows编程。我下载了sqlite驱动程序,并在windows环境变量中设置了类路径。调用此代码时,我得到一个classNotFoundException: Class.forName(sDriver); 其中sDriver是“org.sqlite.JDBC”,这里是异常的stacktrace: java.lang.ClassNotFoundException: org.sqlite.JDBC at java.net.URL

我正在尝试从Java连接到sqlite数据库。我正在用Windows编程。我下载了sqlite驱动程序,并在windows环境变量中设置了类路径。调用此代码时,我得到一个classNotFoundException:

   Class.forName(sDriver);  
其中sDriver是“org.sqlite.JDBC”,这里是异常的stacktrace:

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)
java.lang.ClassNotFoundException:org.sqlite.JDBC
在java.net.URLClassLoader$1.run(URLClassLoader.java:366)
在java.net.URLClassLoader$1.run(URLClassLoader.java:355)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:423)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:356)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:186)
位于com.ib.client.examples.Mydb.setConnection(Mydb.java:49)
位于com.ib.client.examples.Mydb.init(Mydb.java:33)
位于com.ib.client.examples.Mydb.(Mydb.java:17)
位于com.ib.client.examples.Example1.run(Example1.java:40)

任何帮助都将不胜感激。谢谢。

我不知道您正在尝试使用哪个JDBC驱动程序,但到目前为止我找到的最好的SQLite JDBC驱动程序是由Xerial项目制作的:

您可以在此处找到最新版本的驱动程序:

它为Windows(32位和64位)、Linux(32位和64位)和MacOS(32位和64位)使用本机驱动程序,在不受支持的平台上使用纯java实现

所有本机库(dll、so等)都包含在驱动程序的JAR文件中,您不必担心加载它们中的任何一个。它将自动为您检测正确的库

编辑: 如果试图从命令行运行程序,则必须指定类路径中的每个jar文件。在classpath环境变量中设置它们的路径是不够的

例如:

java YourProgram -cp classes;lib/sqlite.jar;c:\libs\java\lib1.jar

你的类路径似乎没有包含驱动程序。我下载了这个驱动程序,但仍然得到相同的异常。我正在使用NetBeans IDE。我试过了,有没有让司机在服务标签上注册。我正在抓救命稻草。你需要将驱动程序JAR添加到你的项目库中。转到项目树(左侧的面板),选择Libraries,然后用鼠标右键添加Jar/文件夹并选择Jar文件。