Я видел этот вопрос здесь, попробовал предложенные исправления, но Нет успеха пока для меня. У меня довольно какое-то опыт Java, но JNI давным-давно, никогда не делал его на Linux, хотя ...
Я пытаюсь получить простое приложение Helloworld JNI, работающее на Linux.
Небольшой файл Java:
class HelloWorld {
private native void print();
public static void main(String[] args){
new HelloWorld().print();
}
static {
System.out.println(System.getProperty("java.library.path"));
System.loadLibrary("HelloWorld");
}
}
Малый C-файл C:
#include <jni.h>
#include <stdio.h>
#include "HelloWorld.h"
JNIEXPORT void JNICALL
Java_HelloWorld_print(JNIEnv *env, jobject obj)
{
printf("Hello World!\n");
return;
}
Компилировал файл C by:
gcc -shared -Wall -fPIC HelloWorld.c -I/usr/lib/gcc/x86_64-redhat-linux/3.4.3/include/ -o libHelloWorld.so
Запустите приложение:
java HelloWorld
или
java -Djava.library.path=/home/nxp40954/jnitesting/. HelloWorld
, но нет хорошего, получение:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/nxp40954/jnitesting/libHelloWorld.so: /home/nxp40954/jnitesting/libHelloWorld.so: cannot open shared object file: No such file or directory
странно Поскольку на самом деле есть /home/nxp40954/jnitesting/libhellowerld.so
файл.
У кого-нибудь есть ключ?