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] Appel de constructeur ?


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut [JNI] Appel de constructeur ?
    J'ai un classe :
    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
    41
    42
     
    package be.manex.test;
     
    public class Processus {
     
        private int _pid;
        private String _name;
     
        public Processus(){
     
        }
     
        public Processus(String name){
            _name = name;
     
        }
     
        public Processus(int pid) {
            _pid = pid;
        }
     
        public Processus(String name, int pid) {
            _name = name;
            _pid = pid;
        }
     
        public String getName() {
            return _name;
        }
     
        public void setName(String name) {
            _name = name;
        }
     
        public int getPid() {
            return _pid;
        }
     
        public void setPid(int pid) {
            _pid = pid;
        }
    }

    que j'aimerai instancie dans du JNI :

    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
    jobject ProcessToJava(JNIEnv *env, TASK_LIST ps ){
     
     
     int i = 0, size;
      char outbuf[MAX_PATH];
      jobject result;
      jclass processClass;
      jmethodID cid;
     
     
      processClass = (*env)->FindClass(env, "Lbe/manex/test/Processus;");
     
      if(processClass == NULL){
        return NULL;
      }
     
      cid = (*env)->GetMethodID(env, processClass, "<init>", "([C)V");
     
      if(cid == NULL) 
          return NULL;
     
     
      result = (*env)->NewObject(env, processClass, cid);
     
    }

    Mais j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Exception in thread "main" java.lang.NoSuchMethodError: <init>
    	at ProcessHelper.getFirstProcessus(Native Method)
    	at ProcessHelper.main(ProcessHelper.java:27)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:585)
    	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
    Or, j'ai suivi ( en modifiant un peu certes ) un truc dans un livre.

    Le constructeur est bien "<init>" non ?
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  2. #2
    Membre expérimenté
    Inscrit en
    Juillet 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 152
    Par défaut
    je ne comprends pas le "([C)V".
    Essaye plutot "void(V)".

  3. #3
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    J'ai mis ()V

    Et ca marche

    J'débute en JNI, et tu as souvent réponses a mes problemes, pourrait tu me conseillers des sites bien fait sur JNI ? ( Hormis le site de sun )?
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  4. #4
    Membre expérimenté
    Inscrit en
    Juillet 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 152
    Par défaut
    amha le site de Sun est largement suffisant.
    (et en tous les cas, je ne connais pas d'autres sites...)

  5. #5
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    ok

    Merci beaucoup en tout cas
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JNI]appel d'un dll en Java
    Par Aida dans le forum Entrée/Sortie
    Réponses: 22
    Dernier message: 23/01/2008, 16h19
  2. [POO-Héritage] Appel du constructeur en PHP4.3.2
    Par raoulchatigre dans le forum Langage
    Réponses: 4
    Dernier message: 28/11/2005, 15h37
  3. Réponses: 5
    Dernier message: 20/11/2005, 11h15
  4. [JNI] Appeler la base de registre
    Par raj dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 23/12/2004, 11h16
  5. [héritage privé] appel du constructeur de base
    Par PINGOUIN_GEANT dans le forum C++
    Réponses: 4
    Dernier message: 19/10/2004, 14h05

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