如何在没有此ClassNotFoundException的情况下连接到Java中的本地SQLite?

时间:2017-02-26 10:22:13

标签: java sqlite jdbc

我试图建立一个简单的Java应用程序来连接到SQLite数据库,但继续接收:

ClassNotFoundException: org.sqlite.jdbc.

我已经下载了sqlite jdbc驱动程序jar并将其放在与.java相同的目录中,并且我在命令行上编译:

javac -cp sqlite-jdbc-3.7.2.jar sqlite3test.java

在运行时,我得到上述异常。以下是代码:

import java.sql.*;

public class sqlite3test
{
    public static void main(String args[])
    {
        Connection c = null;
        try
        {
            Class.forName("org.sqlite.JDBC");
            c = DriverManager.getConnection("jdbc:sqlite:cs261.db");
        }
        catch ( Exception e )
        {
            System.err.println(e.getClass().getName() + ": " + e.getMessage());
            System.exit(0);
        }
        System.out.println("Opened database successfully");
    }
}

如何解决此问题? 感谢。

1 个答案:

答案 0 :(得分:1)

检查安装的数据库版本,在我的情况下是:SQLite version 3.8.2

我正在使用sqlite-jdbc-3.8.9.1.jar,这是一个比安装的数据库更大的版本号,它运行正常。

您必须确保jar文件版本应大于或等于系统中安装的数据库版本。

从最新版本的java(来自Java 6+),您不需要加载您的类文件。

删除以下行并尝试使用。

Class.forName("org.sqlite.JDBC");

注意:我建议您将班级名称从sqlite3test重命名为Sqlite3Test,但这不是强制性的。根据JAVA代码约定,类名应始终以Caps字母开头。

将驱动程序加载到类路径中有不同的方法:

  • 将jar放入$ JAVA_HOME / jre / lib / ext文件夹
  • 使用maven依赖
  • 使用java -cp
  • 如果您正在使用像eclipse这样的IDE,那么右键单击该项目 - >构建路径 - >配置构建路径 - >库 - >添加外部罐子并在那里找到你的罐子。

供参考:http://www.sqlitetutorial.net/sqlite-java/sqlite-jdbc-driver/