[英]Java + Raspberry Pi + SQlite = NoClassDefFoundError
我正在嘗試在Raspberry Pi上運行新應用程序。 它應該連接到一個sqlite數據庫。 sqlite-jdbc-3.8.11.2.jar已添加到構建路徑。 在我的其他Linux上,它工作得很好,但是在Raspberry上卻沒有。 我從https://bitbucket.org/xerial/sqlite-jdbc/issues/79/compile-for-arm下載libsqlitejdbc.so,因為我讀到在Pi上運行它是必需的。 文件libsqlitejdbc.so位於/ home / pi / workspace / data /中,相關代碼為:
Class.forName("org.sqlite.JDBC");
System.loadLibrary("sqlitejdbc");
connection = DriverManager.getConnection("jdbc:sqlite:"+DB_PATH);
當我運行它時,我收到由第2行引起的NoClassDefFoundError:
java.lang.NoClassDefFoundError: org/sqlite/NativeDB
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1968)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1893)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1883)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at kanu.kayapp.DBController.<init>(DBController.java:46)
at kanu.kayapp.DBController.<clinit>(DBController.java:26)
at kanu.kayapp.Server.parseMessage(Server.java:210)
at kanu.kayapp.Server.mainLoop(Server.java:145)
at kanu.kayapp.Main.main(Main.java:34)
Caused by: java.lang.ClassNotFoundException: org.sqlite.NativeDB
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 11 more
我嘗試了以下操作:
$ export CLASSPATH="/home/pi/workspace/data/"
$ export LD_LIBRARY_PATH="/home/pi/workspace/data/"
我已經設法使用.jar文件在Raspberry Pi上解決JDBC Sqlite問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.