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.