Yoy can try javahidapi . I think this is c / C ++ and JNI code. Support for linux, mac, and windows has been announced. I tried this with linux (ok), with clean windows in a virtual box (not ok, UnsatisfiedLinkError, I think some MSVS libraries were skipped). If you compile it from source, it should work, I believe.
here is an example:
import com.codeminders.hidapi.HIDDeviceInfo; import com.codeminders.hidapi.HIDManager; public class TestHid { public static void main(String[] args) throws Exception { try { com.codeminders.hidapi.ClassPathLibraryLoader.loadNativeHIDLibrary(); HIDManager hidManager = HIDManager.getInstance(); HIDDeviceInfo[] infos = hidManager.listDevices(); for (HIDDeviceInfo info : infos) { System.out.println("info: " + info.toString()); } } catch (Exception ex) { ex.printStackTrace(); } } }
CHANGE the output shows only one connected USB device, a brilliant laser mouse.
[ grigory@gr testRSA]$ pwd /home/grigory/testRSA/out/production/testRSA [ grigory@gr testRSA]$ whoami grigory [ grigory@gr testRSA]$ java -cp ".:hidapi-1.1.jar" Test libusb couldn't open USB device /dev/bus/usb/003/002: Permission denied. libusb requires write access to USB device nodes. info:HIDDeviceInfo [path=0003:0002:00, vendor_id=1112, product_id=58, serial_number=null, release_number=0, manufacturer_string=null, product_string=null, usage_page=0, usage=0, interface_number=0] [ grigory@gr testRSA]$ sudo java -cp ".:hidapi-1.1.jar" Test [sudo] password for grigory: info:HIDDeviceInfo [path=0003:0002:00, vendor_id=1112, product_id=58, serial_number=null, release_number=0, manufacturer_string=Genius, product_string=Laser Mouse, usage_page=0, usage=0, interface_number=0] [ grigory@gr testRSA]$
and for the new Windows XP this does not work (you can find only one Windows. I do not have Visual Studio to compile lib from the source code):
E:\testRSA\out\production\testRSA>java -cp ".;hidapi-1.1.jar" -Djava.library.pat h="e:\testRSA\out\production\testRSA" Test Exception in thread "main" java.lang.UnsatisfiedLinkError: com.codeminders.hidap i.HIDManager.init()V at com.codeminders.hidapi.HIDManager.init(Native Method) at com.codeminders.hidapi.HIDManager.<init>(HIDManager.java:53) at com.codeminders.hidapi.HIDManager.getInstance(HIDManager.java:121) at Test.main(Test.java:14)