Bonjour,
Je fais mes premiers pas avec JNI et j'ai donc utilisé le tutoriel de JM Doudoux.
J'ai donc implémenté la méthode ajouter, seulement, je souhaiterai passer le résultat en entrée/sortie.
Tout compile bien sauf que mon addition ne se fait pas
Je vous joins mes différents code ainsi que mes résultats à la console. J'ai besoin de passer des paramètres en entrée/sortie (retourner plusieurs valeurs) pour une implémentation sur des méthodes plus sophistiquées. j'ai donc voulu commencer par tester sur un exemple simple...
J'utilise NetBeans 6.9 et JDK 1.6.0_20
Merci pour votre aide !
Ma classe java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 package testjni1; public class TestJNI1 { public native void ajouter(int a,int b,int c); static { System.load("mabibjni.dll"); } public static void main(String[] args) { TestJNI1 maclasse = new TestJNI1(); int a,b,c; a=3; b=2; c=0; System.out.println("a = " + a); System.out.println("b = " + b); maclasse.ajouter(a,b,c); System.out.println("from C Code a+b = c = " + c); c=a+b; System.out.println("from Java Code a+b = c = " + c); } }
Ma librairie dynamique C
Mes résultats à la console
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <jni.h> #include <stdio.h> #include "TestJNI1.h" JNIEXPORT void JNICALL Java_testjni1_TestJNI1_ajouter (JNIEnv *env, jobject obj, jint a, jint b, jint c) { c = a + b; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 run: a = 3 b = 2 from C Code a+b = c = 0 from Java Code a+b = c = 5 GÉNÉRATION TERMINÉE (durée totale* 0 secondes)
Partager