usb4j の機能
usb4j は USB デバイスと通信する Java アプリケーションを開発するためのライブラリです。Java の高い移植性を生かしてプラットフォームごとに異なる USB 実装をより抽象化した API で利用することを目的としています。
特徴
- マルチプラットフォーム
-
usb4j はプラットフォーム固有の USB I/O 処理を JNI 層で吸収し、上位の Java 層で抽象化された API を提供しています。アプリケーションはプラットフォームごとにデバイスドライバを作成せずに USB デバイスと通信することが出来ます。
- 汎用 USB ドライバ
-
usb4j は汎用 USB ドライバの Java 版として機能します。アプリケーションは未知の USB デバイスとも通信する事ができますが、開発者はデバイスとの USB 通信手順についての知識が必要です。
- ユーザモード動作
-
Java VM はユーザモードでのみ動作します。usb4j を使用してもハードディスクやネットワークインターフェースのような OS カーネルへの組み込みが必要なドライバを作成することはできません。しかしこれらのカーネルモードを必要とするデバイスの多くは OS で標準対応しています。そもそもカーネルモードが必要なドライバにフットプリントの大きい Java は不向きです。
- 抽象ビュー
これらの特徴から、OS の標準サポートやメーカー製ドライバの提供されていないプラットフォーム向けの特定 USB デバイス用アプリケーション開発に向いています。
機能
ライブラリ | LibUSB-Win32 | libusb 0.1 | OpenUSB 1.0 |
---|---|---|---|
デバイス一覧 | △ | ○ | ○ |
記述子情報 | ○ | ○ | ○ |
Control転送 | ○ | ○ | ○ |
Bulk転送 | ○ | ○ | ○ |
Interrupt転送 | ○ | ○ | ○ |
Isochronous転送 | × | × | ○ |
マルチスレッド | × | × | ○ |
接続/切断検知 | × | × | △ |
対応OS | Windows | Linux MacOS FreeBSD |
Linux Solaris |