2014-05-14 20 views
2

更新:我只是檢查我使用的最新的JDBC jar,它缺少map /Linux/arm/libsqlitejdbc.so,這個問題是否可以通過從某處下載此文件來解決?找不到任何地方。在Raspberry pi上打開連接SQLite的錯誤

編輯:問題似乎是這樣,但我不知道如何解決這個問題。

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 
+0

爲什麼你有'try'塊沒有'catch'或'finally'? –

+0

因爲我沒有發佈整個代碼,所以不認爲這是我的問題需要。現在增加了它。 – Jakkra

回答

2

你需要下載一個arm build的SQLite庫。 我只找到一個地方,你可以得到它:https://bitbucket.org/xerial/sqlite-jdbc/issue/79/compile-for-arm

+0

小心細化一下這個?我用'org/sqlite/native/Linux/arm/libsqlitejdbc.so'上的文件試過'jar uf sqlite -jdbc-3.8.6.jar org /',但是碰到一個java.lang.ClassNotFoundException: org.sqlite.NativeDB'當使用更新的lib。你使用的是哪個版本的sqlite-jdbc?你正在採取哪些步驟? – kidmose

0

出於某種原因,它看起來像皮的$HOME被設置爲只讀系統位置。這是錯誤的,但最好的解決方法是允許用戶指定一個將覆蓋整個文件名的屬性,而不是始終使用主目錄。

+0

謝謝你,改變了位置,但仍然給出了同樣的錯誤。 jdbc:sqlite:/home/pi/ServerSQLite.db 打開連接時出錯 – Jakkra

+0

錯誤打開連接來自哪裏,你沒有得到更詳細的堆棧跟蹤? – chrylis

+0

不幸的是,這就是我唯一的例外。我抓住它,但這就是它所打印的。我知道這是線路連接= DriverMa ....這會導致問題。將仔細檢查它是否打印stackTrace。 – Jakkra

0

我在POM利用這一點,如果你只需要jar

運行在我

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

正常工作: LDD (Debian GLIBC 2.19-18 + deb8u4)2.19 Copyright(C)2014 Free Software Foundation,Inc. 這是免費軟件;請參閱複製條件的來源。有沒有 保修;甚至不適用於適銷性或針對特定用途的適用性。 由Roland McGrath和Ulrich Drepper撰寫。