java - SQLite 和 JDBC : returns UnsatisfiedLinkError

标签 java jdbc sqlite

我在 VirtualBox 中运行 Xubuntu。我安装了 sqlite3,由于某种原因不再捆绑。我将 sqlite-jdbc-3.8.7.jar 添加到我的构建路径并运行这个简单的代码来测试它。

import java.sql.*;
public class JDBC_test {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("org.sqlite.JDBC");  
        Connection connection = DriverManager.getConnection("jdbc:sqlite:test.db");
        connection.close();
    }
}

我收到这个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open(Ljava/lang/String;I)V
    at org.sqlite.core.NativeDB._open(Native Method)
    at org.sqlite.core.DB.open(DB.java:161)
    at org.sqlite.core.CoreConnection.open(CoreConnection.java:145)
    at org.sqlite.core.CoreConnection.<init>(CoreConnection.java:66)
    at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:21)
    at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:23)
    at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:45)
    at org.sqlite.JDBC.createConnection(JDBC.java:114)
    at org.sqlite.JDBC.connect(JDBC.java:88)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:233)
    at JDBC_test.main(JDBC_test.java:7)

当我尝试通过将“test.db”替换为文件的完整路径来连接到现有数据库时,我遇到了同样的错误。有什么想法吗?

最佳答案

在 xerial 的 bug tracker 中,驱动程序版本 3.8.7 存在一个错误。 .快速(有效)的解决方案是使用驱动程序版本 3.8.6,直到该错误得到修复。

更新:该错误自版本 3.8.10.2 起已修复(请参阅 Github 上的新错误跟踪器),我确认它现在有效。

关于java - SQLite 和 JDBC : returns UnsatisfiedLinkError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27148541/

相关文章:

c++ - 如何在 SQLite 中列出临时表/ View ?

SQL:修改具有唯一值的查询结果行

java - Handlebars if 方法返回 null/空字符串

android - 在android中使用JDBC连接在mySQL上插入行的问题

java - Oracle驱动在PreparedStatement中setFetchSize时出现OutOfMemoryError

java - 是否有为 Java EE 容器定义 JDBC 数据源的标准方法?

java - Java程序中的无限递归

java - 单击按钮后更改 FlowLayout 对齐方式

java - 如何在 ArrayList 中的特定位置插入对象

java - 无法插入带有外键的记录(android sqlite)