Java SQLite3 连接失败
Java SQLite3 Connection Failing
我在将我的 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
我是不是做错了什么?
您需要在编译时在 class 路径中明确提供 sqlite-jdbc-3.7.2.jar
文件,并使用 -cp
选项 运行 您的 classes。 java 和 javac 命令只会在 class 路径中查找 .class 文件,而不是 jars。
试试这个:
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 命令在当前目录中查找 classes。当 运行 您的程序使用 java
命令时,不要忘记提供 class 罐子的路径。
我找到了解决这个问题的答案。
正常编译脚本
javac Query.java
然后在执行的时候指定驱动
java -classpath ".;sqlite-jdbc-3.7.2.jar" Query
它会 运行 很好
我在将我的 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
我是不是做错了什么?
您需要在编译时在 class 路径中明确提供 sqlite-jdbc-3.7.2.jar
文件,并使用 -cp
选项 运行 您的 classes。 java 和 javac 命令只会在 class 路径中查找 .class 文件,而不是 jars。
试试这个:
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 命令在当前目录中查找 classes。当 运行 您的程序使用 java
命令时,不要忘记提供 class 罐子的路径。
我找到了解决这个问题的答案。
正常编译脚本
javac Query.java
然后在执行的时候指定驱动
java -classpath ".;sqlite-jdbc-3.7.2.jar" Query
它会 运行 很好