在Raspberry pi上打开连接SQLite时出错

时间:2014-05-14 21:52:12

标签: java sqlite raspberry-pi

更新:我只是检查我使用的最新JDBC jar,并且它错过了地图/Linux/arm/libsqlitejdbc.so,是否可以通过从某处下载此文件来解决此问题?无法在任何地方找到它。

编辑:问题似乎是这样,但我不知道如何解决这个问题。

Caused by: java.lang.Exception: Error loading native library: /org/sqlite/native/Linux/arm/libsqlitejdbc.so

我试图在我的覆盆子pi上使用SQLite数据库。但是,我无法让它发挥作用。我得到下面的输出。我正在使用JDBC驱动程序。代码在我的主计算机上正常工作。我到处搜索但无法找到解决方案。如果重要的话,我将我的代码打包到Jar文件中。

相关代码:

     private final String dbLocation = "jdbc:sqlite:" + System.getProperty("user.home") + "/ServerSQLite.db";

    public SQLServer() throws ClassNotFoundException {
        System.out.println("DB location: " + dbLocation);
        Connection connection = null;
        Class.forName("org.sqlite.JDBC");
        try {

            // create a database connection
            connection = DriverManager.getConnection(dbLocation);

输出:

DB location: jdbc:sqlite:/usr/share/tomcat7/ServerSQLite.db
Error opening connection

编辑:硬编码位置同样存在读写权限的问题:

jdbc:sqlite:/home/pi/ServerSQLite.db
Error opening connection

感谢我能得到的任何帮助:)

编辑2:我以为我打印了堆栈跟踪,但这里没有:

java.sql.SQLException: Error opening connection
    ...Lots of exception
Caused by: java.lang.Exception: Error loading native library: /org/sqlite/native/Linux/arm/libsqlitejdbc.so
    at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:241)
...
    at org.sqlite.SQLiteConnection.open(SQLiteConnection.java:175)
    ... 29 more
Error opening connection

问题似乎是由以下原因造成的:

java.lang.Exception: Error loading native library: /org/sqlite/native/Linux/arm/libsqlitejdbc.so

3 个答案:

答案 0 :(得分:2)

您需要下载SQLite库的arm版本。 我找到了一个你可以得到它的地方:https://bitbucket.org/xerial/sqlite-jdbc/issue/79/compile-for-arm

答案 1 :(得分:0)

出于某种原因,看起来Pi的$HOME被设置为只读系统位置。这是错误的,但最好的解决方法是允许用户指定一个覆盖整个文件名的属性,而不是总是使用主目录。

答案 2 :(得分:0)

我在我的POM中使用它并且对我来说很好用

<dependency>
        <groupId>org.xerial</groupId>
        <artifactId>sqlite-jdbc</artifactId>
        <version>3.8.10.1</version>
</dependency>

如果您只需要jar

继续:     ldd(Debian GLIBC 2.19-18 + deb8u4)2.19     版权所有(C)2014 Free Software Foundation,Inc。     这是免费软件;查看复制条件的来源。没有     保证;甚至不适用于适销性或特定用途的适用性。     由Roland McGrath和Ulrich Drepper撰写。