Java SQLite3 连接失败

问题描述 投票:0回答:2

我在将 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);
        }

    }

}

我的类路径确实包含

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

我做错了什么吗?

java sqlite
2个回答
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
投票

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

正常编译脚本

javac Query.java

然后执行时指定驱动程序

java -classpath ".;sqlite-jdbc-3.7.2.jar" Query

它会运行良好

© www.soinside.com 2019 - 2024. All rights reserved.