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

 Java Discussion :

Comment éditer une classe de bibliothèque dans NetBeans 8.1


Sujet :

Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Points : 137
    Points
    137
    Par défaut Comment éditer une classe de bibliothèque dans NetBeans 8.1
    Bonjour,

    Je suis débutant en JAVA et je dois modifier un code source pour une application qui lit la sortie d'un lecteur RFID avec lequel j'ai du support
    Puisqu'il me manque des information pertinente dans l'application d'origine, le suppor tm'a demandé d'ajouter des lignes dans TagReadData class au string public toString. Apparemment ce n'est pas possible d'éditer directement une class qui est compilée par javac, je dois passer obligatoirement par la source java. C'est un point qui m'est acquis. Ce qui est déconcertant c'est que netbeans affiche la source de cette class, et l'onglet s'appel TagReadData java mais impossible d'ajouter quoique ce ce soit.
    Voici le string que je dois modifier :
    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
    43
    44
     public String toString() {
            // <editor-fold defaultstate="collapsed" desc="Compiled Code">
            /* 0: ldc           EPC:%s ant:%d count:%d time:%s
             * 2: iconst_4
             * 3: anewarray     java/lang/Object
             * 6: dup
             * 7: iconst_0
             * 8: aload_0
             * 9: getfield      com/thingmagic/TagReadData.tag:Lcom/thingmagic/TagData;
             * 12: ifnonnull     20
             * 15: ldc           none
             * 17: goto          27
             * 20: aload_0
             * 21: getfield      com/thingmagic/TagReadData.tag:Lcom/thingmagic/TagData;
             * 24: invokevirtual com/thingmagic/TagData.epcString:()Ljava/lang/String;
             * 27: aastore
             * 28: dup
             * 29: iconst_1
             * 30: aload_0
             * 31: getfield      com/thingmagic/TagReadData.antenna:I
             * 34: invokestatic  java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
             * 37: aastore
             * 38: dup
             * 39: iconst_2
             * 40: aload_0
             * 41: getfield      com/thingmagic/TagReadData.readCount:I
             * 44: invokestatic  java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
             * 47: aastore
             * 48: dup
             * 49: iconst_3
             * 50: getstatic     com/thingmagic/TagReadData.df:Ljava/text/DateFormat;
             * 53: new           java/util/Date
             * 56: dup
             * 57: aload_0
             * 58: invokevirtual com/thingmagic/TagReadData.getTime:()J
             * 61: invokespecial java/util/Date."<init>":(J)V
             * 64: invokevirtual java/text/DateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
             * 67: aastore
             * 68: invokestatic  java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
             * 71: areturn
             *  */
            // </editor-fold>
        }
    }
    J'arrive à faire apparaître ceci car la Library pointe sur le fichier mercury.jar qui contient le PATH com.thingmagic

    J'ai le fichier TagReadData java source mais je ne sais pas comment l’insérer dans mon projet ou dans le fichier mercury.jar, car il est dans un autre PATH.

    Merci d'avance pour tout vos conseils et/ou avis.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    On ne modifie jamais les .class dans un jar. Pour modifier un programme ou une bibliothèque, on modifie les sources et on recompile. Il te faut donc pouvoir avoir les sources et avoir le droit de les modifier. Et je ne parle pas des sources obtenues par décompilation (ce que tu montres, et qui manifestement ne décompile pas complètement, puisqu'on ne voit pas de code Java, mais du bytecode "explicite").
    L'autre solution est de modifier le code qui utilise la bibliothèque. Mais tout n'est pas possible : ça dépend de comment elle est architecturée et de ce que tu veux faire exactement.

    Il semble déjà que la bibliothèque est une API propriétaire (ThingMagic) : donc tu ne devrais pas chercher à la modifier (non seulement tu n'en as pas le droit, mais cela te génera pour les upgrades). As-tu accès au moins aux sources de l'application qui l'utilise ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Points : 137
    Points
    137
    Par défaut
    Bonjour Joel

    Merci de m'avoir répondu.
    Je voulais en être sur que ce n'était pas un fonction de Netbean que je ne connaissais pas car je ne comprenais pas comment insérer un string dans un println suivant les recommandations du support du logiciel qui n'étaient pas 100% clairs.
    J'y suis quand même arrivé à faire ce que je voulais en modifiant un fichier java qui utilise le fichier jar en tant que librairie. Je suis donc dans une utilisation normal

    Cependant je vais dévier ce post pour savoir comment faire un fichier jar sur le projet qui a démarré cette discussion. En effet pour que mon projet fonctionne sous netbeans je clique sur run (dont j'ai configuré les options dans le "Project Porperties", et voici ce que cela me donne le run sous netbeans :
    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
    ant -f /home/system/Mercury_API/mercuryapi-1.27.3.16/java/samples_nb -Dnb.internal.action.name=run run
    init:
    Deleting: /home/system/Mercury_API/mercuryapi-1.27.3.16/java/samples_nb/build/built-jar.properties
    deps-jar:
    Updating property file: /home/system/Mercury_API/mercuryapi-1.27.3.16/java/samples_nb/build/built-jar.properties
    mercuryapi_nb.init:
    mercuryapi_nb.deps-jar:
    Updating property file: /home/system/Mercury_API/mercuryapi-1.27.3.16/java/samples_nb/build/built-jar.properties
    mercuryapi_nb.compile:
    To run this application from the command line without Ant, try:
    java -cp "/home/system/Mercury_API/mercuryapi-1.27.3.16/java/ltkjava-1.0.0.6.jar:/home/system/Mercury_API/mercuryapi-1.27.3.16/java/mercuryapi_nb/dist/mercuryapi_nb.jar" samples.demo
    mercuryapi_nb.jar:
    compile:
    run:
    EPC:000000000000228510000285 ant:1 count:1 time:2016-08-31T11:40:43.982+0200 RSSI: -57 Phase: 112
    EPC:000000000000000013781157 ant:2 count:1 time:2016-08-31T11:40:44.016+0200 RSSI: -57 Phase: 118
    EPC:000000000000228510000285 ant:2 count:1 time:2016-08-31T11:40:44.023+0200 RSSI: -65 Phase: 104
    EPC:000000000000000000001843 ant:2 count:1 time:2016-08-31T11:40:44.029+0200 RSSI: -59 Phase: 87
    Voici la commande à taper dans un terminal linux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /home/system/Mercury_API/mercuryapi-1.27.3.16/java/samples_nb/dist
    system@rfid:~/Mercury_API/mercuryapi-1.27.3.16/java/samples_nb/dist$ java -cp samples_nb.jar:../../mercuryapi.jar:../../ltkjava-1.0.0.6.jar samples.read tmr:///dev/ttyUSB0 --ant 1,2
    EPC:000000000000000013781157 ant:2 count:1 time:2016-08-31T17:21:41.738+0200 RSSI: -60 Phase: 123
    EPC:000000000000000000001843 ant:2 count:1 time:2016-08-31T17:21:41.744+0200 RSSI: -58 Phase: 87
    EPC:000000000000000013781157 ant:2 count:1 time:2016-08-31T17:21:41.800+0200 RSSI: -60 Phase: 120
    EPC:000000000000000000001843 ant:2 count:1 time:2016-08-31T17:21:41.804+0200 RSSI: -58 Phase: 87
    J'aimerais un fichier jar dont nous n'aurions qu' à taper :
    java -jar file.jar tmr:///dev/ttyUSB0 --ant 1,2


    Merci de votre aide.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Malheureusement, je ne travaille que sous Eclipse (où faire ça est très simple), et je ne connais pas NetBeans, donc je ne peux te dire comment faire un jar exécutable (cherche 'Runnable JAR with NetBeans' sur le net, ou pose la question dans le forum http://www.developpez.net/forums/f11...java/netbeans/).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Points : 137
    Points
    137
    Par défaut
    Ok merci ...

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

Discussions similaires

  1. Comment insérer une classe dans un vector
    Par razily dans le forum SL & STL
    Réponses: 9
    Dernier message: 26/02/2010, 18h55
  2. comment appeler une classe java dans une page jsp?
    Par limalima dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 21/11/2008, 22h59
  3. Réponses: 0
    Dernier message: 22/04/2008, 18h44
  4. Comment utiliser une classe Java dans une appli PB ?
    Par bobychezA56 dans le forum Powerbuilder
    Réponses: 0
    Dernier message: 09/04/2008, 18h07
  5. Réponses: 11
    Dernier message: 16/12/2007, 00h48

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