2013-04-11 5 views
5

Ich baue eine einfache Anwendung, die über die serielle Schnittstelle kommuniziert mit der Java-Kommunikations-API javax.comm. HierCommPortIdentifier.getPortIdentifiers ist leer

ist ein Code in meinem Java-main-Methode Ich schrieb:

CommPortIdentifier cpi = null; 
     Enumeration e = CommPortIdentifier.getPortIdentifiers(); 
     while (e.hasMoreElements()) { 
      try { 
       cpi = (CommPortIdentifier) e.nextElement(); 
      } catch (NoSuchElementException n) { 

      } 
      System.out.println(cpi.getName()); 
     } 

Enumeration e ist immer leer, obwohl ich an einen COM-Port 4 verbunden bin, wenn dieser ausgeführt wird.

auch, läuft diesen Code:

portRead = CommPortIdentifier.getPortIdentifier("COM8"); 

Ursache der Wurf von NoSuchPortException

Ich glaube, ich habe die Installation Teil richtig gemacht und platziert die Eigenschaftendatei, die win32com.dll Datei an den richtigen Stellen .

Wissen Sie, was das Problem sein könnte?

Danke

Antwort

3

Stellen Sie sicher, dass win32com.dll (kommt mit javax.com) im jre \ bin. Stellen Sie sicher, dass sich javax.comm.properties (kommt mit javax.com) im Verzeichnis jdk \ lib befindet.

-1

Suche Hafen, in dem das Gerät arbeitet (Power Shell oder Hyperterminal Versuchen Sie alle COM-Ports link versuchen zu finden)

+2

Beachten Sie, dass Link-nur Antworten werden entmutigt, SO Antworten sollte der Endpunkt einer Suche nach einer Lösung (vs. noch eine weitere Zwischenstation von Referenzen, die im Laufe der Zeit abgestanden zu bekommen neigen) sein. Bitte beachten Sie, dass Sie hier eine eigenständige Zusammenfassung hinzufügen und den Link als Referenz beibehalten. – kleopatra

5

Denken Sie daran, immer Sie alle entpackten Dateien von javax.comm.zip zu jre hinzufügen müssen

win32com.dll - jre/bin

comm.jar - jre/lib/ext

java.comm.properties - jre/lib (nach dieser Zugabe ich gelöst Ausnahme Problem gefunden)