LibUsb声称接口访问被拒绝Java

bra*_*ram 15 java usb libusb

我希望能够从USB计步器读取数据.我在Java中尝试这个,我正在使用LibUsb和Usb4Java库.我似乎无法声称usb管道或类似的东西.

我正在使用的代码:

final Context context = new Context();

    int result = LibUsb.init(context);
    if (result < 0)
    {
        throw new LibUsbException("Unable to initialize libusb", result);
    }

    DeviceHandle handle = LibUsb.openDeviceWithVidPid(context, vid, pid);
    if (handle != null)
    {
        Device d = LibUsb.getDevice(handle);
        int res = LibUsb.claimInterface(handle, 0);
Run Code Online (Sandbox Code Playgroud)

Int res返回'-3',即'LIBUSB_ERROR_ACCESS'

设备已找到但不可索赔.USB设备只有1个接口.

任何帮助,将不胜感激!

Md *_*kib 2

LibUsb 需要 root 权限才能访问 USB 设备。在 Mac 中,拥有管理员帐户不足以访问 USB 设备。您必须以 root 身份运行它(admin 和 root 不同)。当我在 Mac(OSX EL Capitan)上使用它时,我遇到了同样的问题,我认为这是设备或库无法正常工作的问题,但后来我意识到这是权限问题。猜测你的程序名称是 myDevicesAccessor 然后像这样运行它。

sudo ./myDevicesAccessor
Run Code Online (Sandbox Code Playgroud)

如果你尝试像

./myDevicesAccessor
Run Code Online (Sandbox Code Playgroud)

这是行不通的。