不通过执行Java应用程序在ARM上加载JDBC库

不通过执行Java应用程序在ARM上加载JDBC库,java,sqlite,jdbc,jar,classpath,Java,Sqlite,Jdbc,Jar,Classpath,我们在unix主目录中有一个Java应用程序“app.jar”,它有一个外部Sqlite驱动程序库 - myapp/app.jar - myapp/lib/sqlite-jdbc-3.8.7.jar 设备Udoo手臂皮质V9模拟树莓皮 java -version java version "1.8.0_06 Java(TM) SE Runtime Environment (build 1.8.0_06-b23) Java HotSpot(TM) Client VM (build 25

我们在unix主目录中有一个Java应用程序“app.jar”,它有一个外部Sqlite驱动程序库

- myapp/app.jar
- myapp/lib/sqlite-jdbc-3.8.7.jar
设备Udoo手臂皮质V9模拟树莓皮

java -version
java version "1.8.0_06
Java(TM) SE Runtime Environment (build 1.8.0_06-b23)
Java HotSpot(TM) Client VM (build 25.6-b23, mixed mode)
尝试运行此应用程序失败

java -classpath lib/sqlite-jdbc-3.8.7.jar -jar myapp.jar
应用程序似乎找不到库

java.lang.Exception: No native library is found for os.name=Linux and os.arch=arm
at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:284)
at org.sqlite.SQLiteJDBCLoader.initialize(SQLiteJDBCLoader.java:65)
直到现在我才找到解决办法。是否可以将.jar文件复制到jdk/lib文件夹

编辑:

现在,我尝试将sqlite-jdbc-3.7.2.jar添加到JRE中,它可以工作了

 jdk1.8.0_06/jre/lib/ext

较新版本的sqlite-jdbc-3.8.7.jar不起作用。

我将版本中的sqlite-jdbc加载程序代码与版本进行了比较,发现了一些细节。3.7.2似乎有一个纯java模式,而相应的代码来自3.8.7。从我的一点知识和对下载页面的快速浏览,我得出结论,目标平台需要一个本机库。我找不到ARM的下载


如果您需要一个纯java数据库,可以使用另一个

我认为您的命令行是错误的。 如果您使用-jar,那么-classpath将被忽略


app.jar中的清单需要引用库,或者您需要像这样启动它:java-classpath lib/sqlite-jdbc-3.8.7.jar:myapp.jar name.of.MainClass

应用程序可以找到驱动程序,但是在jar中没有提到的arm平台的本机驱动程序,也没有arm本机库。但是,3.7.2中也没有,所以我不明白它是如何工作的。你是从同一个地方得到两个版本的吗。有没有可能有人自己构建了arm库并将其与库捆绑在一起?