Подтвердить что ты не робот

Не загружает библиотеку JDBC на ARM, выполнив Java Applikation

Ok У нас есть Java-приложение "app.jar" в домашнем каталоге unix с внешней библиотекой драйверов Sqlite.

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

Устройство Udoo ARM Cortex V9 simliar для малины 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?

Edit:

Теперь я попытался добавить sqlite-jdbc-3.7.2.jar в JRE, и он работает.

 jdk1.8.0_06/jre/lib/ext

Более новая версия sqlite-jdbc-3.8.7.jar не работает.

4b9b3361

Ответ 1

Я сравнил код SQLiteJDBCLoader в версии 3.8.7 с версией 3.7.2 и нашел некоторое представление. 3.7.2, кажется, имеет чистый java-режим, в то время как соответствующий код отсутствует от 3.8.7. Из моего небольшого знания и быстрого взгляда на страницу загрузки я пришел к выводу, что для целевой платформы потребуется родная библиотека. Я не мог найти загрузку для ARM.

Если вам нужна чистая дата-база java, вы можете выбрать другой .

Ответ 2

Я считаю, что ваша командная строка неверна. Если вы используете -jar, то -classpath игнорируется!

Либо манифест в app.jar должен ссылаться на библиотеку, либо вам нужно запустить его следующим образом: java -classpath lib/sqlite-jdbc-3.8.7.jar: myapp.jar name.of.MainClass