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 :
puis je genere le .h :
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
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 :
et voila mon code java, testj.java:
je compile la classe java :
puis je genere le .h :
juste apres je passe au fichier .c :
en fin je crée la lib que je nomme 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 :