java - 为什么 SQLite 不能在 Linux 上与 java 集成的 NetBeans IDE 上运行?

标签 java linux sqlite netbeans

首先我的操作系统是Ubuntu 14.04,我使用NetBeans IDE 8.0.1进行java编程。我想构建一个简单的应用程序来访问数据库文件,因为我需要一个无服务器驱动程序,所以我下载了 sqlite-JDBC-3.8.7.jar 并将其作为新库添加到我的项目中的 Libraries 文件夹中。之后我得到了一个简单的代码来测试驱动程序,它是:

 import java.sql.*;

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

必须创建一个名为 test.db 的新数据库并打印“成功打开数据库” 但发生错误,异常消息为:

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 foodchooser.test.main(test.java:13)
Java Result: 1 

问题不仅出现在这个测试代码中,而且出现在我使用的任何地方:

 Class.forName("org.sqlite.JDBC");
  c = DriverManager.getConnection("jdbc:sqlite:--WhateverPath--");

换句话说我无法使用sqlite。 请帮忙!!提前致谢。

最佳答案

显然,最新的 SQLite-JDBC 库存在一些兼容性问题,无法在 Linux 上正常运行。老版本好像没有这个问题。

删除了其他 SQLite-JDBC 库,并仅包含 this 中最旧的名为“sqlite-jdbc-3.7.15-SNAPSHOT.jar”的库网址

关于java - 为什么 SQLite 不能在 Linux 上与 java 集成的 NetBeans IDE 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27654255/

相关文章:

java - Apache Commons 压缩 : Opening . tar.gz

android - 什么会导致待机模式下key_up和key_down同时报错

linux - 为什么Linux会重用由pipe()分配的文件描述符

sqlite - 在python的多个选项卡中将数据从sqlite导出到Excel文件

java - Eclipse 插件开发 - 如何在 FieldEditorPreferencePage 上添加超链接

java - 比较命令行参数引用返回 false 而字符串数组返回 true

java - hibernate : How override an attribute from mapped super class

linux - nfsv4 linux c 中的并发文件访问

Python:通过空白 csv 迭代引发 StopIteration 错误

ios - 如何从 objective-c 中的对象列表中的 sqlite 数据库中获取数据?