Java SQLite3连接失败

时间:2015-03-13 15:26:03

标签: java database sqlite connect

我在将java脚本连接到SQLite3数据库时遇到了一些麻烦。

我的目录中包含我的脚本,如下所示

C:/PROG/JavaPROG/programs/java_database

在这个目录里面我有3个文件

Query.java, Query.class and the database query.db

我的java代码如下所示

import java.sql.*;

public class Query3 {

    public static void main(String[] args) {

        Connection conn = null;

        try {
            Class.forName("org.sqlite.JDBC");
            conn = DriverManager.getConnection("jdbc:sqlite:C:/PROG/JavaPROG/programs/java_database/query.db");
            System.out.println("Connection Success");
        } catch(Exception log) {
            System.out.println("Connection Failed: " + log);
        }

    }

}

我的classpath确实包含

C:\Program Files\Java\jdk1.8.0\bin

并且在bin目录中是sqlite jdbc驱动程序

sqlite-jdbc-3.7.2.jar

我可以将我的脚本连接到PostgreSQL数据库,但我看不出为什么它没有连接到SQLite3,我收到以下错误消息

java.lang.ClassNotFoundException: org.sqlite.JDBC

我做错了吗?

2 个答案:

答案 0 :(得分:1)

使用sqlite-jdbc-3.7.2.jar选项编译和运行类时,需要在类路径中显式提供-cp文件。 java和javac命令只查找类路径中的.class文件,而不是jar。

试试这个:

javac -cp <path_to_jar/sqlite-jdbc-3.7.2.jar>;. <your_class_name>.java

如果您有多个第三方库,则可以使用通配符:

javac -cp <path_to_jar/*>;. <your_class_name>.java

请注意;是Windows中使用的分隔符。如果您使用的是基于unix的系统,则需要使用:而不是;。 Java可能与平台无关,但java和javac命令却不是。

另请注意,.告诉java和javac命令在类的当前目录中查找。在使用java命令运行程序时,不要忘记为jar提供类路径。

答案 1 :(得分:-1)

我找到了解决这个问题的答案。

正常编译脚本

javac Query.java

然后在执行

时指定驱动程序
java -classpath ".;sqlite-jdbc-3.7.2.jar" Query

它会正常运行