usb4java is a Java library for accessing USB devices. It is based on the native libusb 1.0 library and uses Java NIO buffers for data exchange between libusb and Java. It also supports the javax-usb standard (JSR-80) through the usb4java-javax extension. Supported platforms are Linux (x86 32/64-bit, ARM 32-bit), OS X (x86 32/64-bit), and Windows (x86 32/64-bit). Other platforms may work as well (as long as they have at least Java 6 and are supported by libusb) by compiling the JNI library manually.