2014-05-14 8 views
2

에서 SQLite 연결을 연결하는 중 오류가 발생했습니다. 업데이트 : 사용중인 최신 JDBC jar 파일을 확인하고 /Linux/arm/libsqlitejdbc.so 맵이 누락되었습니다.이 파일을 다른 곳에서 다운로드하면이 문제가 해결 될까요? 어디서나 찾을 수 없습니다.라즈베리 파이

편집 : 문제는이 것 같지만 해결 방법을 모릅니다.

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

저는 나무 딸기 파이에 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

왜'catch' 또는'finally'가없는'try' 블록이 있습니까? –

+0

전체 코드를 게시하지 않았기 때문에 내 질문에 필요하다고 생각하지 않았습니다. 이제 그걸 추가했습니다. – Jakkra

답변

2

팔 빌드 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'를 사용하십시오. 어떤 버전의 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 저작권 (C) 2014 자유 소프트웨어 재단 이것은 자유 소프트웨어입니다. 복사 조건에 대한 소스를 참조하십시오. 아무런 보증이 없습니다; 상품성 또는 특정 목적에의 적합성을 보장하지 않습니다. Roland McGrath 및 Ulrich Drepper 지음.