使用usb4java在OS X上声明USB设备失败

时间:2015-10-27 11:07:15

标签: java usb libusb usb4java

我已经用JavaFX GUI编写了一个演示应用程序,它必须从USB设备读取一个串行和某种硬件ID。我正在使用javax.usb(usb4java)库

<dependency>
    <groupId>org.usb4java</groupId>
    <artifactId>usb4java-javax</artifactId>
    <version>1.2.0</version>
</dependency>

访问并声明设备:

UsbConfiguration configuration = imuniqe.getActiveUsbConfiguration();
UsbInterface iface = (UsbInterface) configuration.getUsbInterfaces().get(0); // FIXME

iface.claim(new UsbInterfacePolicy() {
    @Override
    public boolean forceClaim(UsbInterface arg0) {
        return true;
    }
});

如果我用sudo启动程序,在我的Ubuntu 14.04系统上运行应用程序就可以了。

但是如果我使用Java 8在MacBook Pro(OS X 10.9.5)上运行它,我会遇到以下异常:

javax.usb.UsbPlatformException: USB error 3: Unable to claim interface: Access denied (insufficient permissions)
at
org.usb4java.javax.ExceptionUtils.createPlatformException(ExceptionUtils.java:39)
at
org.usb4java.javax.AbstractDevice.claimInterface(AbstractDevice.java:430)
at 
org.usb4java.javax.Interface.claim(Interface.java:102)
...

即使使用sudo运行应用程序也不会改变其行为。

我错过了什么重要的事吗?是否有任何技巧可以让我的应用程序在OS X上声明USB接口?

0 个答案:

没有答案