Немного предыстории:
У меня есть Java-приложение, которое должно общаться со сторонним оборудованием на Mac. Они дали мне SDK, но это не на Java. Поэтому я пытаюсь создать jnilib, который будет служить мостом между моим Java-приложением и SDK.
Вопрос:
Я сделал небольшой пример jnilib, который говорит с SDK, но когда я пытаюсь использовать его в своей java-программе, я получаю следующую ошибку
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/john.doe/Desktop/eclipse/workspace/Lesson13_Jni_Smart7/bin/libSmartTest7.jnilib: Library not loaded: build/Release/SMARTResponseSDK.framework/Versions/A/SMARTResponseSDK Referenced from: /Users/john.doe/Desktop/eclipse/workspace/Lesson13_Jni_Smart7/bin/libSmartTest7.jnilib
Reason: image not found
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1742)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1045)
at com.learning.lesson13.JniSmart7.<clinit>(JniSmart7.java:6)
По ошибке похоже, что мой libSmartTest7.jnilib
ищет библиотеку SMARTResponseSDK
.
Что я пробовал
Я знаю, где находится библиотека SMARTResponseSDK
на моем Mac. Я попытался скопировать его в мою рабочую папку в Eclipse, но все равно получаю ошибку. Я пытался использовать -DJava.library.path
, но все равно получаю ошибку.
Любые идеи о том, каким будет наилучший из возможных подходов.