libusbx is a library which provides generic access to USB devices. As a library, it is meant to facilitate the development of applications which communicate with USB hardware. Its main features are portability (a single cross-platform API for Linux, OS X, Windows, and *BSD), user-mode (no special privileges required), and USB version-agnosticism (all versions of the protocol supported, including USB 3.0).
usb4java is a Java library for accessing USB devices. The low-level part is based on the native libusb 0.1 shared library and reflects this API as completely as possible. Java NIO buffers are used for data exchange between libusb and Java. The high-level part implements the javax.usb standard (JSR-80). Supported platforms are Linux (x86 32/64 bit), Mac OS X (x86 32/64 bit, PowerPC 32 bit) and Windows (x86 32/64 bit), but other platforms supported by Java 6 and libusb may work by compiling the JNI library manually.