PDA

Visualizza la versione completa : [C++ e Java] JNI.. problemi a referenziare il metodo scritto in C


derfel993
15-02-2010, 11:22
Non so se metterla qui questa discussione o nella sezione JAVA.. se ho sbagliato spostatemela.. :)

Sto facendo una semplice classe di test JAVA che mediante l'utilizzo di JNI si interfaccia ad una classe C++ che scrive in output una stringa. Creo la dll e la referenzio in JAVA tramite il loadLibrary ma quando chiamo il metodo mi da errore: Exception in thread "main" java.lang.UnsatisfiedLinkError: Helloword.print()V


Vi inserisco il codice nella speranza che riusciate ad aiutarmi.. il 2 giorno di disperazione questo:


Helloword.java

public class Helloword {

private native void print();
public static void main(String[] args) {
new Helloword().print();
}

static {
System.loadLibrary("libJNITest2");
}
}


Helloword.h

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Helloword */

#ifndef _Included_Helloword
#define _Included_Helloword
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Helloword
* Method: print
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_Helloword_print
(JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif


TestJNI.cpp

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

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


Che potrebbe essere?

Loading