"The first version of the Universal Serial Bus (USB)
specification was released in January 1996. Because of its low
cost, high data-transfer rate, ease of use, and flexibility, USB
has gained wide acceptance in the computer industry. Today, many
peripherals and devices connect to computers through USB
interfaces. Currently, most general-purpose operating systems
provide support for USB devices, and it is relatively easy to
develop applications in C or C++ that access such peripherals.
However, the Java programming language by design provides very
little support for hardware access, so writing Java applications
that interact with USB devices has proved quite difficult.
"Efforts to provide access to USB devices in the Java language
were initiated in 1999 by Dan Streetman at IBM. In 2001, his
project was accepted as a candidate extended standard of the Java
language through the Java Specification Request (JSR) process. The
project is now called JSR-80 and has been officially assigned the
Java package javax.usb. Meanwhile, in June 2000, Mojo Jojo and
David Brownell started the jUSB project at SourceForge. Both of
these projects have since produced usable packages for Linux
developers, although neither is close to perfect. Both projects
also have begun attempts to provide access to USB devices for Java
applications on other operating systems, though usable packages
have not yet emerged from either..."