it-swarm.com.de

So greifen Sie auf USB-Anschlüsse in java

Ich versuche eine Java) - Anwendung zu schreiben, die auf die USB-Ports zugreift, um von einem über USB angeschlossenen Gerät zu lesen und auf dieses zu schreiben. Das Problem ist, dass ich nicht genau weiß, was ich verwenden soll in Java um so etwas zu tun. Ich habe online gesucht und etwas mit dem Namen JUSB gefunden, aber alle Beiträge scheinen ziemlich alt zu sein.

Derzeit verwende ich die Bibliotheken RXTX, aber manchmal treten Synchronisierungsfehler auf. Wenn ich C # verwende, um das Äquivalent zu erstellen, ist weitaus weniger Code erforderlich, und es treten nicht dieselben Synchronisierungsfehler auf.

Meine Frage lautet: Ist in der neuesten Version der JRE etwas eingebaut, mit dem ich auf die USB-Ports zugreifen kann? ( Das ist genauso einfach wie der entsprechende C # -Code )?

28
Petezah

Es gibt nichts Vergleichbares zur USB-Unterstützung von C # in Java. Sowohl jUSB als auch Java-USB sind stark veraltet und für jede ernsthafte Anwendungsentwicklung wahrscheinlich unbrauchbar.

Wenn Sie eine plattformübergreifende USB-Anwendung implementieren möchten, schreiben Sie am besten eine abstrakte JNI Schnittstelle, die mit nativen Linux-, Mac- und Windows-Bibliotheken kommuniziert dass du dich selbst schreiben musst. Ich würde mir LibUSB ansehen, um mit Mac und Linux umzugehen. Wie Sie gesehen haben, ist Windows ziemlich einfach. Ich bin gerade aus einem einjährigen Projekt herausgekommen, das genau dies getan hat, und leider ist dies die einzige ernsthafte plattformübergreifende Lösung. Wenn Sie nicht auf Windows implementieren müssen und Ihre Anforderungen begrenzt sind, können Sie mit einer der älteren Java libs (jUSB oder Java-USB)) auskommen. Alles, was bereitgestellt werden muss Win32/Win64 benötigt eine native Komponente.

14
Dave Sims

Ich benutze usb4Java seit einem Jahr auf Cross-Plattform (Linux und Windows) und es funktioniert großartig.

Sehen:

http://usb4Java.org/

Sie sind sehr aktiv und haben eine sehr gute Javax USB Front.

24
jboisvert

Siehe die Bibliotheken jUSB oder sb4Java .

7
Jim Ferrans

Vielleicht möchten Sie einen Blick auf usb4Java werfen - http://usb4Java.org/index.html es scheint Windows, Linux und Mac OS zu unterstützen und scheint zum Zeitpunkt der Veröffentlichung einigermaßen aktuell zu sein. Befindet sich leider unter der LGPL, so ist dies möglicherweise nicht für die kommerzielle Entwicklung geeignet.

Die Java Communications API . Dies sollte eine ähnliche Funktionalität bieten wie der Namespace C # System.IO.Ports .

3
Taylor Leese