繁体   English   中英

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

[英]Does not load JDBC Library on ARM by execute Java Application

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

- myapp/app.jar
- myapp/lib/sqlite-jdbc-3.8.7.jar

设备 Udoo ARM Cortex V9 类似于 Raspberry Pi。

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 不起作用。

我比较了3.8.7版和3.7.2版中的 SQLiteJDBCLoader 代码,发现了一些见解。 3.7.2 似乎有一个纯 java 模式,而相应的代码来自 3.8.7 缺失。 根据我的一点知识和对下载页面的快速浏览,我得出结论,目标平台需要一个本机库。 我找不到 ARM 的下载。

如果您需要纯 Java 数据库,您可能会采取另一种选择

我相信你的命令行是错误的。 如果您使用 -jar,则 -classpath 将被忽略!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM