NoSuchPortException à l'aide de RXTX bibliothèque Java sur Windows?
J'ai suivi les instructions pour l'installation rxtx sur windows à partir de http://www.jcontrol.org/download/readme_rxtx_en.html.
Ce que j'ai fait exactement ce qui était la copie rxtxSerial.dll d' "C:\Program Files\Java\jdk1.6.0_07\jre\bin"
et copié RXTXcomm.jar d' "C:\Program Files\Java\jdk1.6.0_07\jre\lib\ext"
(ma variable JAVA_HOME est fixé à C:\Program Files\Java\jdk1.6.0_07\jre)
J'ai également ajouté RXTXcomm.jar pour mon projet eclipse.
Mais quand je le lance, il dit encore "NoSuchPortException"
Devel Bibliothèque ========================================= Natif lib Version = RXTX-2.0-7pre1 Java lib Version = RXTX-2.0-7pre1 java.lang.ClassCastException: gnu.io.RXTXCommDriver ne peut pas être lancé à gnu.io.CommDriver levée pendant le chargement de gnu.io.RXTXCommDriver gnu.io.NoSuchPortException à gnu.io.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:218) au TwoWaySerialComm.connect(TwoWaySerialComm.java:20) au TwoWaySerialComm.principale(TwoWaySerialComm.java:107)
Dans mon fichier java, je lui dis:
essayer { (nouvelle TwoWaySerialComm()).connect("COM4"); }
et j'ai aussi essayé le Java Comm API. Les deux ne peuvent pas reconnaître mon port série, mais je suis sûr que j'ai suivi les instructions correctement. Il y a les fichiers sont là.
Quelqu'un a une idée ce que ça pourrait être?
Vous devez vous connecter pour publier un commentaire.
Essayer de mettre
rxtxSerial.dll
dansvous pouvez utiliser
CommPortIdentifier.getPortIdentifiers()
pour identifier tous les possibles ports de votre système trouve.
Je ne suis pas trop familier avec RXTX, mais est-ce normal?
Sinon peut-être le problème n'est pas avec le port lui-même, après tout, mais quelque chose avec les classes elles-mêmes?
Juste une supposition.
Vous pouvez également essayer une solution alternative qui a été spécifiquement mis en œuvre pour Windows. Il devrait y avoir beaucoup disponibles, l'un d'eux, vous pouvez obtenir à partir de http://www.caerustech.com/JCommWin32.php
Shultz
Il se peut que votre système ne dispose pas d'un COM4 défini ou il n'est pas accessible. Il est difficile de deviner ce qui peut être mauvais, parce que vous n'avez pas posté, vous port code d'initialisation - ce que vous avez posté ressemble le code wrapper.
Voici mon code d'initialisation à l'aide de la javax.comm API (mais en utilisant SerialPort de serialio.com):
J'espère que cela vous mène dans la bonne direction.
Je suis d'accord que vous êtes problème ressemble à un ClassCastException et pas l'autre.
Pour windows, je suis en utilisant "Windows Java Port Com Série Pilote" à http://www.engidea.com/blog/informatica/winjcom/winjcom.html et il est beaucoup plus facile pour moi de mettre en place.
Dans les deux cas, vous souhaitez que la DLL dans le répertoire BIN, pas de LIB\BIN comme il a été suggéré. Au moins, c'est ce qui fonctionne pour moi. Je suis à l'aide de NetBeans et j'ai aussi trouvé utile de mettre le pot et la dll dans divers bin et lib\ext dossiers dans le JDK.
Notez que si vous avez plusieurs versions de JRE sur votre machine, vous risquez de ne pas être à l'aide de celui que vous pensez que vous êtes en utilisant. Aussi, en pratique, je l'ai trouvé plus utile de simplement copier le jar et dll dans les différents bin et lib\ext dossiers. En fait juste un coller, coller, coller.
Pour windows, je vous recommande "Windows Java Port Com Série Pilote" parce qu'il a résolu mes problèmes avec l'USB ports série. J'ai eu des crises avec RXTX parce qu'il plantait lorsque la clé USB a été débranché. winjcom résolu ce problème et d'autres aussi bien. Il est très utile d'erreur exceptions.
Aussi, assurez-vous que votre série de pilotes sont à jour. Le téléchargement d'une mise à jour fixe mon autre bug.
-Stosh
J'ai également eu un problème lors de la fermeture de la serialPort au sein de la fonction serialEvent.
C'est peut-être un problème de blocage, où la méthode close attend indéfiniment serialEvent de verrouillage pour être libéré.
Commencer un nouveau thread pour fermer le port a fonctionné pour moi.
Pour votre question, mon code est le suivant:
Vous avait
NoSuchPortException
, alors tout d'abord itérer sur tous les ports disponibles!@Pinheiro, vous voudrez peut-être jeter un oeil à cette