IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[JNI] Objet en jni


Sujet :

Entrée/Sortie Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2008
    Messages : 30
    Par défaut [JNI] Objet en jni
    Bonjour,
    je débute en jni et j'ai un petit peut de mal.
    En fait j'ai crée un objet en java qui contient un attribut double. Dans ce programme j'utilise un méthode native avec en paramètre l'objet et cette méthode va modifier ce double dans le programme c et renvoyer l'objet vers le programme java. Je ne sais pas vraiment quelles fonction C utiliser alors j'ai essayer quelque chose mais ça ne marche pas.
    Si quelqu'un pouvais m'aider ça serai sympa.
    merci d'avance

    code 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    import java.util.*;
     
    public class JNIWrapper {
     
    	double a;
     
     
        static {
            // Ensure native JNI library is loaded
            System.loadLibrary("testjni2");
        }
     
        public JNIWrapper(double a ) {
            System.out.println("JNIWrapper instance created");
    		this.a=a;
     
     
     
        }
     
     
    		private native JNIWrapper sommeTab();
    		public static void main(String args[]) {
    			int tabl[] = new int[]{5,15,7,13};
    			double a1=10.2;
    			int b=10;
     
    			JNIWrapper p = new JNIWrapper(a1);
    			System.out.println("resultat 1 java: " +p.a );
    			p.sommeTab();
     
     
     
    			System.out.println("resultat 2 java: "+p.a);
    		}
     
     
     
     
    }
    code C:

    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
    26
     
    #include "JNIWrapper.h"
    #include <stdio.h>
    #include <jni.h>
     
    JNIEXPORT jobject JNICALL Java_JNIWrapper_sommeTab(JNIEnv *env, jobject obj) {
     
    jclass	objjni;
    jdouble d;
    jfieldID fid;
     
    objjni = (*env) -> GetObjectClass(env,obj);
    //jmethodID mid = (*env)->GetStaticMethodID(env,objjni, "main", "([Ljava/lang/String;)V");
    //(*env)->CallVoidMethod(env,obj, mid);
     
     
    fid = (*env) -> GetFieldID(env,objjni,"a","D");
    d = (*env) -> GetDoubleField(env,objjni,fid);
     
    printf("affichage dans c no1: %lf\n",d);
    (*env)->SetDoubleField(env,objjni, fid, d+6);
    d = (*env) -> GetDoubleField(env,objjni,fid);
    printf("affichage dans c no2: %lf\n",d);
    return objjni;
     
    }

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2008
    Messages : 30
    Par défaut objet jni
    En fait avec les print que je fais le programme exécuté me donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    JNIWrapper has exited with status 0.
    [Session started at 2009-01-15 11:19:08 +0100.]
    JNIWrapper instance created
    resultat 1 java: 10.2
    affichage dans c no1: 0.000000
    affichage dans c no2: 6.000000
    resultat 2 java: 10.2
     
    JNIWrapper has exited with status 0

Discussions similaires

  1. [JNI] Accéder à un tableau stoker dans un objet.
    Par Andarus dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 06/02/2012, 17h09
  2. Réponses: 0
    Dernier message: 07/12/2010, 16h14
  3. [JNI] : Obtenir les champs d'un objet inclus dans un objet
    Par jojo29 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 27/04/2006, 13h36
  4. [ Eclipse ] [ plugin ] [ JNI ] Utilisation de JNI?
    Par Jean-Philippe Shields dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 25/11/2005, 22h54
  5. [debutant][JNI]Stocker des objet pour les rappeler plus tard
    Par Celenor dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 28/03/2004, 01h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo