web-dev-qa-db-fra.com

Comment accéder aux ports USB dans java

J'essaie d'écrire une application Java qui accède aux ports USB pour lire et écrire sur un périphérique connecté via USB. Le problème que je rencontre est que je ne sais pas quoi utiliser exactement in Java pour faire une telle chose. J'ai cherché en ligne et trouvé quelque chose appelé JUSB mais tous les articles semblent assez anciens.

Actuellement, j'utilise les bibliothèques RXTX mais je rencontre parfois une erreur de synchronisation. Lorsque j'utilise C # pour faire l'équivalent, il nécessite beaucoup moins de code et je ne fais face à aucune des mêmes erreurs de synchronisation.

Ma question est, y a-t-il quelque chose de intégré dans la dernière version du JRE que je peux utiliser pour accéder aux ports USB ( c'est aussi simple que le code C # équivalent )?

28
Petezah

Il n'y a rien d'équivalent à la prise en charge USB de C # en Java. JUSB et Java-USB sont gravement obsolètes et probablement inutilisables pour tout développement sérieux d'application.

Si vous souhaitez implémenter une application USB multiplateforme, le mieux est d'écrire une interface abstraite JNI qui parle aux bibliothèques natives Linux, Mac et Windows. que vous devrez vous écrire. Je regarderais LibUSB pour gérer Mac et Linux. Windows, comme vous l'avez vu, est assez simple. Je viens de sortir d'un projet d'un an qui a fait exactement cela, et malheureusement c'est la seule solution sérieuse multiplateforme. Si vous n'avez pas à implémenter sous Windows et que vos besoins sont limités, vous pouvez vous en tirer avec l'une des anciennes bibliothèques Java (jUSB ou Java-USB). Tout ce qui doit être déployé sur Win32/Win64 aura besoin d'un composant natif.

14
Dave Sims

J'utilise usb4Java depuis un an sur cross platfom (Linux et Windows) et cela fonctionne très bien.

Voir:

http://usb4Java.org/

Ils sont très actifs et ont une très bonne façade USB javax.

24
jboisvert

Voir les bibliothèques jUSB ou sb4Java .

7
Jim Ferrans

Vous voudrez peut-être jeter un œil à usb4Java - http://usb4Java.org/index.html il semble prendre en charge Windows, Linux et Mac OS et semble être relativement à jour au moment de la publication. Est malheureusement sous la LGPL et peut donc ne pas convenir au développement commercial.

7

API Java Communications . Cela devrait fournir des fonctionnalités similaires à l'espace de noms C # System.IO.Ports .

3
Taylor Leese