Hi,
ich versuche gerade, ein einfaches HelloWorld-Programm mit JNI zu erstellen. Das Problem dabei ist, dass ich zurzeit beim Aufruf der nativen Mehtode folgende Fehlermeldung bekomme:
Mene Java-Klasse sieht so aus:
und meine Hello.c-Klasse:
und schließlich noch die Befehle zum kompilieren:
(ich wollte es erstmal über die Konsole versuchen, da es mir zurzeit noch zu umständlich erscheint, es z.B. in Eclipse einzurichten)
Wodurch wird nun die Fehlermeldung verursacht?
ich versuche gerade, ein einfaches HelloWorld-Programm mit JNI zu erstellen. Das Problem dabei ist, dass ich zurzeit beim Aufruf der nativen Mehtode folgende Fehlermeldung bekomme:
Code:
Exception in thread "main" java.lang.UnsatisfiedLinkError: jni.callnative()V
at jni.callnative(Native Method)
at jni.main(jni.java:5)
Mene Java-Klasse sieht so aus:
Java:
class jni {
private native void callnative();
public static void main(String[] args) {
new jni().callnative();
}
static {
System.loadLibrary("hello");
}
}
und meine Hello.c-Klasse:
Code:
#include <jni.h>
#include <stdio.h>
JNIEXPORT void JNICALL Java_jni_callnative(JNIEnv *env,
jobject obj)
{
printf("HelloWorld\n");
return;
}
und schließlich noch die Befehle zum kompilieren:
(ich wollte es erstmal über die Konsole versuchen, da es mir zurzeit noch zu umständlich erscheint, es z.B. in Eclipse einzurichten)
Code:
javac jni.java
javah -jni jni
gcc -fPIC -shared -I/usr/local/java/include -I/usr/local/java/include/genunix -Wl,--add-stdcall-alias hello.c -lc -o libnativelib.so
export LD_LIBRARY_PATH="/home/pfad/JNITest"
java jni
Wodurch wird nun die Fehlermeldung verursacht?