Problème avec CommPortIdentifier.getPortIdentifiers

Résolu
PWM63 Messages postés 127 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 18 mai 2016 - 18 déc. 2013 à 18:21
BunoCS Messages postés 15395 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 2 octobre 2023 - 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.

5 réponses

BunoCS Messages postés 15395 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 2 octobre 2023 102
18 déc. 2013 à 21:31
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é...
1
BunoCS Messages postés 15395 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 2 octobre 2023 102
19 déc. 2013 à 09:36
Cool!
Reviens quand tu veux ;)
1
PWM63 Messages postés 127 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 18 mai 2016
19 déc. 2013 à 00:53
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 ?
0
PWM63 Messages postés 127 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 18 mai 2016
Modifié par PWM63 le 19/12/2013 à 09:24
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PWM63 Messages postés 127 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 18 mai 2016
19 déc. 2013 à 09:34
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...
0
Rejoignez-nous