Problème avec CommPortIdentifier.getPortIdentifiers [Résolu]

Messages postés
127
Date d'inscription
lundi 11 octobre 2004
Dernière intervention
18 mai 2016
- - Dernière réponse : BunoCS
Messages postés
14384
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
12 février 2019
- 19 déc. 2013 à 09:36
Bonjour,

Je commence à peine avec Java ET avec NetBeans. (j'ai l'habitude de programmer en VB .Net)
Je suis sous Windows 7.

Je viens de créer 1 nouveau projet qui affiche 1 fenêtre avec du code qui s'exécute comme il faut.

Cependant, lorsque le code arrive sur la ligne :
portEnum = CommPortIdentifier.getPortIdentifiers();
toute la suite est ignorée, comme si j'avais 1 erreur, mais sauf qu'il n'y a pas d'erreur d'affichée...
Je vous mets le code concerné (dans le formulaire, j'ai mis 1 texbox de test (jTextArea1) pour suivre où j'en suis dans le code, et 1 combobox (jComboBox_Port) censé lister mes ports)

import gnu.io.CommPortIdentifier;



    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton_Ouvrir;
    private javax.swing.JComboBox jComboBox_Port;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    // End of variables declaration                   
}



    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
        // TODO add your handling code here:
        liste_ports();

    }                                 


    public final void liste_ports() {

        // OK
        this.jComboBox_Port.removeAllItems();
        this.jTextArea1.append("jComboBox_Port.removeAllItems OK");
        this.jTextArea1.append("\n");

        // OK
        java.util.Enumeration<CommPortIdentifier> portEnum;
        this.jTextArea1.append("java.util.Enumeration<CommPortIdentifier> portEnum OK");
        this.jTextArea1.append("\n");

        try {
        // marche PAS... 
        //  ICI
            portEnum = CommPortIdentifier.getPortIdentifiers();

        // la ligne ci-dessous n'est pas exécutée 
        // car la ligne ci-dessus a stoppé mais sans aller dans le catch du try... :/
            this.jTextArea1.append("portEnum = CommPortIdentifier.getPortIdentifiers OK");
            this.jTextArea1.append("\n");
            this.jTextArea1.append("portEnum.toString = " + portEnum.toString());
            this.jTextArea1.append("\n");
            
            while (portEnum.hasMoreElements()) {
            
                CommPortIdentifier portIdentifier = portEnum.nextElement();
                this.jTextArea1.append(portIdentifier.getName());
                this.jTextArea1.append("\n");
                this.jTextArea1.append(getPortTypeName(portIdentifier.getPortType()));
                this.jTextArea1.append("\n");

                this.jComboBox_Port.addItem(portIdentifier.getName() + " - " + getPortTypeName(portIdentifier.getPortType()));

            }
            
        } catch (RuntimeException ex) {
        // la ligne ci-dessous n'est pas exécutée non plus...
            this.jTextArea1.append("ERREUR TRY");
            this.jTextArea1.append("\n");
            this.jTextArea1.append(ex.getMessage());
            this.jTextArea1.append("\n");

        }

    }


Quand j'exécute le code, la texbox n'affiche que :
jComboBox_Port.removeAllItems OK
java.util.Enumeration<CommPortIdentifier> portEnum OK

et n'affiche rien d'autre

je ne vois strictement aucune erreur qui s'affiche quand j'exécute le code, ni dans le programme...

PS : la librairie que j'ai ajouté via Libraries / Add library est RXTXcomm.jar

Merci de votre aide.
Afficher la suite 
A voir également:

Votre réponse

5 réponses

Meilleure réponse
Messages postés
14384
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
12 février 2019
124
1
Merci
Hello,

Si tu changes
catch (RuntimeException ex)
par
catch (Exception ex)
, tu sera plus générique et tu catchera toutes les erreurs.
Sauf erreur de ma part,
portEnum
ne semble pas déclaré...

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BunoCS
Messages postés
14384
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
12 février 2019
124
1
Merci
Cool!
Reviens quand tu veux ;)

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BunoCS
Messages postés
127
Date d'inscription
lundi 11 octobre 2004
Dernière intervention
18 mai 2016
0
Merci
Merci Buno,

Je regarde ça demain matin pour le catch et je te tiens au courant.

Concernant la déclaration, je crois comprendre que c'est cette ligne :
  java.util.Enumeration<CommPortIdentifier> portEnum;

Non ?
Commenter la réponse de PWM63
Messages postés
127
Date d'inscription
lundi 11 octobre 2004
Dernière intervention
18 mai 2016
0
Merci
Bonjour Buno,

J'ai remplacé le catch par :
        } catch (Exception ex) {


Mais c'est toujours pareil... le code ne continue pas et ne vas pas dans le catch non plus....

ps : et l'appli n'est pas plantée, je peux cliquer par exemple sur la combobox et elle s'ouvre vide

Stéphane
Commenter la réponse de PWM63
Messages postés
127
Date d'inscription
lundi 11 octobre 2004
Dernière intervention
18 mai 2016
0
Merci
Problème résolu !

En fait, la dll que j'avais mis était en 32 bits alors que je suis sur 1 système en 64 bits.

J'ai trouvé 1 autre endroit où récupérer les fichiers :
RXTXcomm.jar
rxtxSerial.dll

que j'ai rangé au bon endroit, et tout fonctionne comme il faut, j'ai mes ports dans ma combobox !

Merci Buno de t'être penché sur mon cas. Il est même fort probable que je revienne sur ce forum étant donné mon niveau Java...
Commenter la réponse de PWM63

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.