mercredi 1 juillet 2015

unsatisfied link error in java native programming

I am trying to build my first native program in java.The .c and .h file compiled well but when running java code I get this error. Here are my java and c source file

Main.java

public class Main{
public native void sayHello();
static{
     System.loadLibrary("hello");
}
public static void main(String[] args) {
Main main = new Main();
      main.sayHello();
 }
}

Hello.c

#include <jni.h>
#include "stdio.h"
#include "Main.h"

JNIEXPORT void JNICALL Java_Main_sayHello
  (JNIEnv *env, jobject obj)
{
    printf("Hello World \n");
    return;

}

.C file compilation

C:.../gcc -I"C:\Program Files\Java\jdk1.7.0_79\include" 
-I "C:\Program Files\Java\jdk1.7.0_79\include\win32" -o hello.dll -shared Hello.c

Running Java File

C:.../javac Main.java
C:.../java Main
Exception in thread "main" java.lang.UnsatisfiedLinkError: Main.sayHello()V
    at Main.sayHello(Native Method)
    at Main.main(Main.java:8)

Aucun commentaire:

Enregistrer un commentaire