2010-10-18 9 views
17

Ich benutze die javax.comm API, um mein Programm mit Hardware über die serielle Schnittstelle kommunizieren zu helfen. Ich verwende die Windows 7 und NetBeans IDE 9.Javax.comm API auf 64-Bit-Windows

Ich benutzte das allgemeine Java-Programm, um die verfügbaren Häfen auf meinem PC zu überprüfen. Das Programm kompiliert und lief ohne Fehler. Es hat jedoch nichts zurückgegeben.

Was kann ich tun, um die javax.comm API unter Windows zu verwenden? Es scheint, dass win32com.dll nicht mit einem 64-Bit-Betriebssystem funktioniert.

Antwort

3

den win32com.dll scheinen mit Betriebssystem 64-Bit funktioniert nicht

Ich denke, das ist richtig. In der Tat, nach der entsprechenden Download-Seite, unterstützt Oracle nicht mehr die javax.comm API für jeder Windows-Plattform.

Allerdings habe ich this page gefunden, die unter anderem einen 64bit Build der DLL hat.

EDIT

Durch eine erstaunliche Stück Forschung (das heißt die folgenden Links und Sachen zu lesen) Ich habe die download page für die neueste RXTX gefunden, die Binärdateien für verschiedene Plattformen haben behauptet. Wenn Ihre Plattform nicht vorhanden ist, versuchen Sie, aus der Quelle zu bauen. Wenn das nicht funktioniert, sollten Sie die Mühe investieren, damit es funktioniert.

+0

Vielen Dank Stephen, ich besuchte den Link http://www.euclideanspace.com/software/language/java/comm/ Sie verwiesen, und ich sehe, dass dieses Paket für Linux ist. Ich wollte jedoch ein Paket für die Fenster. – Nathi

1

Haben Sie einen Blick auf RXTX? Ich denke, es ist immer noch aktiv.

+0

Hallo Peter, ich habe die RXTX, aber ich habe Probleme damit umzugehen. Ich wünschte, ich könnte ein paar Beispielcode bekommen, der RXTX verwendet – Nathi

+0

Es ist alles hier erklärt http://rxtx.qbang.org/wiki/index.php/Using_RXTX, hast du das gelesen? – PeterMmm

5

Die letzten 2.2pre-Versionen von RXTX enthalten Binärdateien für 64-Bit-Fenster. I denken die neueste RXTX-Informationsquelle hat sich geändert: http://rxtx.qbang.org anstelle von http://www.rxtx.org obwohl.

An einem Punkt der RXTX-Bibliothek enthalten Drop-in-Unterstützung für die Verwendung der javax.comm api. Ich bin mir nicht sicher, ob es das immer noch tut, aber die Hauptänderung, die dann verwendet wurde, um das "native" RXTX-Paket zu verwenden, war hauptsächlich nur eine Änderung des Paketnamens.

+0

Willst du sagen, dass das Paket rxtx dieselben Klassen und Methoden wie javax.comm hat? Ich bin mir nicht sicher, ob ich das selbe selbe Verfahren benutzen kann, wie ich es auf der javax.comm getan habe. – Nathi

+0

In einer älteren Version von RXTX, ja. Sie könnten die javax.comm-Pakete und -Klassen der Java-COMM-API verwenden, wobei RXTX ein einfacher Ersatz für eine Drop-In-Implementierung ist. In neueren Versionen von RXTX müssen importierte Pakete von "javax.comm. *" In "gnu.io. *" geändert werden. Ansonsten sind Klassen und API wahrscheinlich zu 99% gleich. Vergleichen Sie die beiden APIs hier: http://rxtx.qbang.org/wiki/index.php/Development. – kaliatech

+0

64-Bit-Binärdateien: http://www.cloudhopper.com/opensource/rxtx/ – lepike

1

hatte ich dieses Problem ... auf ein 64-Bit-machine..running windows 7

eine Legacy-Anwendung in jdk entwickelte 1,4, für 32-Bit-Windows ... und mit dem win32 comm api binären

Ich habe versucht, die RXTX-Binärdatei für 64 Bit und ich konnte mit meinem Gerät auf einer Ebene kommunizieren ... aber ... gab es andere Probleme als meine Anwendung verwiesen auf eine Version der jpos-Bibliothek, die intern die Comm-API verwendet (hatte import javax.comm. * ... in einigen seriellen ... Listener-Klasse) ....

Ich installierte eine 32 Bit jdk und richten Sie die Comm-Api-Binärdateien für 32-Bit-Fenster wie hier beschrieben ein ...setup comm api on windows

war alles in Ordnung danach

2

Ich habe integriert RXTX Bibliotheken in einigen meiner früheren Projekten und ich fand diesen Fehler heraus, es hat während der Arbeit mit Comm-Ports unter Windows, also sollten Sie dies zuerst überprüfen, bevor Sie in einige ernsthafte App-Design gehen. Kommunikation funktioniert gut, hatte nie ein Problem damit, aber sobald Sie den Port öffnen, können Sie nicht schließen und erneut öffnen, wenn Sie die Methode zum Schließen von Port verwenden, hängt Ihre App einfach, keine Ausnahme, nichts. Ich habe später das gleiche Verhalten von Benutzern im Web gefunden, aber nie wirklich die Lösung für dieses Problem gefunden. Auch dies könnte Ihnen helfen, Zeit zu sparen, überprüfen Sie es zuerst.

Neueste Version, die diese http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip ist, hat dieses Problem nicht mehr. Leider denke ich, es ist nur für Windows gelöst, es ist immer noch auf Linux-Binärdateien, und ich habe es nicht auf Mac versucht.

9

So habe ich es zum Laufen gebracht.
Ich habe es mit JDK 1.6 (32bit) auf meiner Windows 7 64bit Maschine getestet.

  1. 32-Bit-JDK installieren.
  2. Kopieren Sie 'win32com.dll' nach JDK_HOME \ jre \ bin.
  3. Kopieren Sie 'javax.comm.properties' in JDK_HOME \ jre \ lib.
  4. Kopieren Sie 'comm.jar' in JDK_HOME \ jre \ lib \ ext.

Jetzt führen Sie Ihr Programm und es sollte funktionieren.