web-dev-qa-db-ja.com

javaでUSBポートにアクセスする方法

USBポートにアクセスしてUSB経由で接続されたデバイスの読み取りと書き込みを行うJavaアプリケーションを作成しようとしています。私が直面する問題は、そのようなことをするためにJavaで正確に何を使うべきかわからないということです。オンラインで検索したところ、JUSBと呼ばれるものが見つかりましたが、すべての投稿はかなり古いようです。

現在、RXTXライブラリを使用していますが、同期エラーが発生することがあります。 C#を使用して同等の処理を行うと、必要なコードがはるかに少なくなり、同じ同期エラーに直面することはありません。

私の質問は、sbポートにアクセスするために使用できるJREの最新バージョンに組み込まれているものはありますかこれは同等のC#コードと同じくらい簡単です)?

28
Petezah

JavaでのC#のUSBサポートに相当するものはありません。 jUSBとJava-USBはどちらも非常に古く、深刻なアプリケーション開発には使用できない可能性があります。

クロスプラットフォームのUSBアプリケーションを実装する場合、実際の最善策は、Linux、Mac、およびWindowsネイティブライブラリと通信する抽象 [〜#〜] jni [〜#〜] インターフェイスを記述することです。自分で書く必要があること。 LibUSB を見て、MacとLinuxを処理します。これまで見てきたように、Windowsは非常に簡単です。私はちょうどこれをやった1年間のプロジェクトから抜け出しましたが、残念なことにこれは唯一の深刻なクロスプラットフォームソリューションです。 Windowsに実装する必要がなく、ニーズが限られている場合は、古いJava libs(jUSBまたはJava-USB)のいずれかで対応できます。 Win32/Win64にはネイティブコンポーネントが必要です。

14
Dave Sims

クロスプラットフォーム(LinuxおよびWindows)で1年間usb4Javaを使用しており、すばらしい動作をします。

見る:

http://usb4Java.org/

これらは非常にアクティブで、非常に優れたjavax USBフロントを備えています。

24
jboisvert

jUSB または sb4Java ライブラリを参照してください。

7
Jim Ferrans

Usb4Javaをご覧になることをお勧めします- http://usb4Java.org/index.html Windows、Linux、およびMac OSをサポートしているようです。投稿時点では合理的に最新であるように見えます。残念ながらLGPLに基づいているため、商業開発には適さない可能性があります。

Java Communications API 。これにより、C# System.IO.Ports 名前空間と同様の機能が提供されます。

3
Taylor Leese