Ajouter un commentaire

nasix

Merci pour votre reponse,

fin je vais donner en detail ce que j ai fait,

je veux juste appeler une fonction runsmv qui affiche un message("utilisation reussie").

voila mon fichier testc.c :

Quote:

#include /* --------- fourni avec le JDK */
#include
#include "testj.h"

JNIEXPORT void JNICALL Java_testj_runsmv(JNIEnv *env, jobject obj){

printf("utilisation reussie");

}

et voila mon code java, testj.java:

Quote:

class testj {

public native void runsmv();

static {
System.load("/home/nasri/JNI/smvlib.so");
}

public static void main(String[] args) {
new testj().runsmv();
}

}

je compile la classe java :

Quote:
javac testj.java

puis je genere le .h :

Quote:
javah -jni testj

juste apres je passe au fichier .c :

Quote:
gcc -c testc.c -I. -I../Logiciel/jdk1.5.0_06/include/ -I../Logiciel/jdk1.5.0_06/include/linux/ -o testc.o

en fin je crée la lib que je nomme smvlib.so :

Quote:
gcc testc.c -shared -o smvlib.so

quand j appelle la classe a partir d une ligne de commande :

java testj

ca marche, mais quand j utilise la librairie a partir d'une autres classe SMV dans netbeans (et j ajoute l option -D... dans run->VM Option) non plus, j aurai l'exception suivante :

Quote:
java.lang.unsatisfiedLinkError : runsmv

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
  AA    SSS    GGG    SSS   V     V 
A A S G S V V
AAAA SSS G GG SSS V V
A A S G G S V V
A A SSSS GGG SSSS V