Java 尽管我向类路径(Eclipse)添加了jar文件,但为什么到SQLite的连接失败了?

Java 尽管我向类路径(Eclipse)添加了jar文件,但为什么到SQLite的连接失败了?,java,eclipse,sqlite,jdbc,Java,Eclipse,Sqlite,Jdbc,这个问题困扰了我三天。在Google上找到了很多东西,但对我的问题毫无帮助:我无法建立到SQLite数据库的连接。到目前为止,我尝试的是: public class RegelfragenConnection { Connection con = null; public void connect() { try { Class.forName("org.sqlite.JDBC"); String url = "

这个问题困扰了我三天。在Google上找到了很多东西,但对我的问题毫无帮助:我无法建立到SQLite数据库的连接。到目前为止,我尝试的是:

public class RegelfragenConnection {

    Connection con = null;

    public void connect() {
        try {
            Class.forName("org.sqlite.JDBC");
            String url = "jdbc:sqlite:C:/Webfreigabe/Regel.db";
            con = DriverManager.getConnection(url);
            System.out.println("connected");
        } catch (SQLException | ClassNotFoundException e) {
            System.out.println("not connected");
            System.out.println(e.getMessage());
        }
    }

    public void close() {
        [...]
    }

    public List<Frage> getRegeltest(int anzahlFragen) {
        [...]
    }
}
当它尝试使用连接时,它出现在方法getRegeltest中。前两条语句是catch子句中的println

这个问题很奇怪我错过了什么?我为企业Java开发人员使用Eclipse IDE版本2018-12(4.10.0), SQLite-jdbc-3.23.1, TomcatV8.0服务器


感谢您的帮助

正如问题注释中正确指出的那样,您必须通过
WEB-INF/lib
文件夹提供数据库驱动程序jar文件,该文件夹位于项目的
WebContent
目录中

注意:您遇到了一个
java.lang.ClassNotFoundException:org.sqlite.JDBC
,问题中发布了原始代码。这就引出了问题的核心。一般建议:不要用“简单消息”隐藏异常。始终在开发过程中打印堆栈跟踪

对于此更改,您必须通过管理Web/应用程序容器库(即Web应用程序的类路径)的Web库来引用
sqlite jdbc-.jar

这样,您将在运行时加载驱动程序并调用

con = DriverManager.getConnection(url);
将成功地为“Regel.db”数据库文件建立一个工作的
连接
实例


希望它能帮助其他读者解决这个问题。

您应该将
sqlite-jdbc-x.y.jar
放在
WebContent/WEB-INF/lib
文件夹中。也请替换
System.out.println(e.getMessage())带有
e.printStackTrace()重新运行并发布异常消息。@guleryuz它正在工作。答案是将jar放在lib文件夹中。非常感谢你。作为答案发布,您将获得声誉
con = DriverManager.getConnection(url);