Я пытаюсь использовать статическую библиотеку, используя JNI.Поэтому я статически компилирую свою библиотеку g++ -c -std=c++11 -o jnitest_jnitest_App.o jnitest_jnitest_App.cpp -lOtherLib
и затем упаковываю ее
ar rcs jnitest_jnitest_App.a jnitest_jnitest_App.o
Теперь, когда я пытаюсь запустить мою .jar
, я получаю следующую ошибку:
jnitest/jnitest_jnitest_App.a: invalid ELF header (Possible cause: endianness mismatch)
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2424)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2481)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2678)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2611)
at java.base/java.lang.Runtime.load0(Runtime.java:814)
at java.base/java.lang.System.load(System.java:1838)
at jnitest.jnitest.App.<clinit>(App.java:13)
Я использую 64-битный Linux Mint 19 и Java 10 (64-битный)
Компиляция собственного кода в общую библиотеку не дает ошибокс JNI.Где здесь проблема?