2013-04-09 37 views
-1

我正在开发一个USB读取Java程序来获取连接的USB设备的名称。这是我写的代码:编译一个带有不寻常错误/警告的Java USB程序

import java.io.UnsupportedEncodingException; 
import java.util.List; 
import javax.usb.*; 
import javax.usb.UsbDevice; 
import javax.usb.UsbDisconnectedException; 
import javax.usb.UsbException; 
import javax.usb.UsbHostManager; 
import javax.usb.UsbHub; 
import javax.usb.UsbServices; 

public class ListUsbDevices { 
    public static void main(String[] args) throws SecurityException, UsbException, UnsupportedEncodingException, UsbDisconnectedException { 
     UsbServices services = UsbHostManager.getUsbServices(); 
     UsbHub rootHub = services.getRootUsbHub(); 

     List<UsbDevice> devices = rootHub.getAttachedUsbDevices(); 
     if (devices.size() > 0) { 
      System.out.println("USB devices found."); 
     } else { 
      System.out.println("No USB devices found."); 
     } 

     for (UsbDevice device : devices) { 
      System.out.println("\tProduct String " + device.getProductString()); 
      System.out.println("\tManufacturer String " + device.getManufacturerString()); 
      System.out.println("\tSerial Number " + device.getSerialNumberString()); 
     } 
    } 
} 

当我编译这个程序,它显示了这样的警告:

Note: ListUsbDevices.java uses unchecked or unsafe operations. 
Recompile with -Xlint:unchecked for details. 

-Xlint:unchecked重新编译,它显示了这一点:

ListUsbDevices.java:21: warning: [unchecked] unchecked conversion 
    found : java.util.L 
    required: java.util.List<javax.usb.UsbDevice> 
    List<UsbDevice> devices = rootHub.getAttachedUsbDevices(); 
              ^. 

但是创建了类文件。

当我运行这个程序,我得到这个异常:

Exception in thread "main" javax.usb.UsbException: Properties file 
javax.usb.properties not found. 

我该如何解决这个问题?如何在Mac中设置属性文件?我已经设置了CLASSPATH:

export CLASSPATH=.:/Users/sakkisetty/Documents/jsr80-1.0.1.jar 

但我不确定这是否奏效。任何指针将不胜感激。

回答

1

属性文件通常是本地程序包的一部分。我甚至没有意识到OSX的实现。

有关如何为Linux设置的示例,请访问javax.usb FAQ