javax.usb.UsbException: файл свойств javax.usb.properties не найден - PullRequest
2 голосов
/ 02 августа 2011

Я использовал следующий код для получения кода производителя устройства USB, подключенного к системе. Я добавил банку jsr80-1.0.1. И я получил следующую ошибку javax.usb.UsbException:

Файл свойств javax.usb.properties не найден.

Есть предложения?

import java.io.UnsupportedEncodingException;
    import java.util.*;
    import javax.usb.*;

    public class USBListener {
        public static void main(String[] args) {
            try{
                UsbServices services = UsbHostManager.getUsbServices();
                UsbHub root = services.getRootUsbHub();
                listDevices(root);
            } catch (Exception e) {
                System.out.println(e);
            }
        }

        public static void listDevices(UsbHub hub) throws UnsupportedEncodingException, UsbException {
            List devices = hub.getAttachedUsbDevices();
            Iterator iterator = devices.iterator();
            while(iterator.hasNext()) {
                UsbDevice device = (UsbDevice)iterator.next();
                describe(device);
                if(device.isUsbHub()) {
                    System.out.println("is hub");
                }
            }
        }

        public static void describe(UsbDevice device) 
            throws UnsupportedEncodingException, UsbException {
            UsbDeviceDescriptor descriptor = device.getUsbDeviceDescriptor();
            byte manufacturerCode = descriptor.iManufacturer();
            System.out.println("Manufacturer index: " + manufacturerCode);
            System.out.println("Manufacturer String: " + device.getString(manufacturerCode));
            System.out.println("USB version: " + decodeBCD(descriptor.bcdUSB()));
            System.out.println("Maximum control packet size: " + descriptor.bMaxPacketSize0());

        }

        public static String decodeBCD(short bcd) {
            int upper = (0xFF00 & bcd) >> 8;
            int middle = (0xF0 & bcd) >> 4;
            int lower = 0x0F & bcd;
            return upper + "." + middle + "." + lower;
        }
    }

1 Ответ

2 голосов
/ 02 августа 2011

Вам нужен этот файл на вашем пути к классам.Из документов:

Файл javax.usb.properties является файлом свойств Java, который требуется классу загрузчика реализации API.Файл свойств должен загружаться обычными средствами (т. Е. Он должен быть в CLASSPATH), и он должен содержать свойство javax.usb.services.Это свойство должно быть определено.Его значением должно быть полное имя класса, который реализует интерфейс javax.usb.UsbServices.Этот класс будет загружен как реализация javax.usb.

И, кроме того, если вы видите эту ошибку, вы, вероятно, не получили реализацию javax.usb:

Вам нужна реализация javax.usb;файл предоставляется всеми реализациями javax.usb

См. здесь: http://javax -usb.sourceforge.net / faq.html # what_is_properties_file

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...