Pourquoi les sorties diffèrent quand je lance ce code à l'aide NetBeans 6.8 et Eclipse? [dupliquer]

StackOverflow https://stackoverflow.com/questions/4533140

Question

  

Possible en double:    Pourquoi les sorties diffèrent quand je lance ce code à l'aide NetBeans 6.8 et Eclipse?

Quand je courais le code suivant en utilisant Eclipse et NetBeans 6.8. Je veux voir les ports COM disponibles sur mon ordinateur. Lors de l'exécution dans Eclipse, il me retourne tous les ports COM disponibles, mais quand il en cours d'exécution dans NetBeans, il ne semble pas trouver tous les ports ..

public static void test() {
    Enumeration lists=CommPortIdentifier.getPortIdentifiers();

    System.out.println(lists.hasMoreElements());
    while (lists.hasMoreElements()) {
        CommPortIdentifier cn =
          (CommPortIdentifier)lists.nextElement();

        if ((CommPortIdentifier.PORT_SERIAL==cn.getPortType())) {
            System.out.println(
              "Name is serail portzzzz " +
              cn.getName()+
              " Owned status " +
              cn.isCurrentlyOwned());

            try {
                SerialPort port1=(SerialPort)cn.open("ComControl",800000);
                port1.setSerialPortParams(
                  9600,
                  SerialPort.DATABITS_8,
                  SerialPort.STOPBITS_1,
                  SerialPort.PARITY_NONE);
                System.out.println("Before get stream");
                OutputStream out=port1.getOutputStream();
                InputStream input=port1.getInputStream();
                System.out.println("Before write");
                out.write("AT".getBytes());
                System.out.println("After write");
                int sample=0;
                //while((( sample=input.read())!=-1)){
                System.out.println("Before read");
                //System.out.println(input.read() + "TEsting ");
                //}
                System.out.println("After read");
                System.out.println(
                  "Receive timeout is " +
                  port1.getReceiveTimeout());
            }
            catch(Exception e) {
                System.err.println(e.getMessage());
            }
        }
        else {
            System.out.println(
              "Name is parallel portzzzz " +
              cn.getName() +
              " Owned status " +
              cn.isCurrentlyOwned() +
              cn.getPortType() +
              "    ");
        }
    }
}

Sortie avec Netbeans,

  

false

sortie en utilisant Eclipse,

true
Name is serail portzzzz COM1 Owned status false
Before get stream
Before write
After write
Before read
After read
Receive timeout is -1
Name is serail portzzzz COM2 Owned status false
Before get stream
Before write
After write
Before read
After read
Receive timeout is -1
Name is parallel portzzzz LPT1 Owned status false2
Name is parallel portzzzz LPT2 Owned status false2
Était-ce utile?

La solution

Une estimation initiale serait que la bibliothèque que vous utilisez utiliser du code natif enfermé dans une DLL et que le code ne peut être trouvé donner une erreur plus tôt que vous avez manqué, et le code revient à un comportement factice.

Je regarder de plus près le code d'initialisation pour voir ce qui s'y passe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top