Hallo. Ich versuche gerade etwas mit jni hinzubekommen. Im moment hab ich testweise nur eine Hallo-Welt funktion in c geschrieben und diese dann kompiliert. Den Header dafür hab ich natürlich vorher mit javah erstellen lassen, also sollte das kein problem darstellen. doch beim laden kommt ein Unsatisfied linker error. Das heisst ja eig, er findet die dll nicht. Hab sie deshalb testweise ins C:\Windows\System32 gesteckt, immer noch nichts .
in C:
Hab das C-File in meiner IDE (Dev-C++) auch ganz sicher als dll kompiliert.
PS: Ja, diese funktion sollte mal zum strlen werden, aber dafür muss es mal überhaupt funktionieren und ich hab derzeit nur das hallo java drinnen.
Code:
package arm.jni;
public class Startjni {
static {
System.loadLibrary("strlen");
}
public static native int strlen(String s);
/**
* @param args
*/
public static void main(String[] args)
{
System.out.println( System.getProperty("java.library.path") );
System.out.println(Startjni.strlen("2003 UB313"));
}
}
in C:
Code:
#include <stdio.h>
#include "strlen.h"
#include <jni.h>
JNIEXPORT jint JNICALL Java_arm_jni_Startjni_strlen
(JNIEnv *env, jclass claz, jstring str){
printf("Hallo java");
return 0;
}
Hab das C-File in meiner IDE (Dev-C++) auch ganz sicher als dll kompiliert.
PS: Ja, diese funktion sollte mal zum strlen werden, aber dafür muss es mal überhaupt funktionieren und ich hab derzeit nur das hallo java drinnen.