2015-02-12 34 views
1
public void showInfo(){ 
    com.codeminders.hidapi.ClassPathLibraryLoader.loadNativeHIDLibrary(); 
      HIDManager hidManager = HIDManager.getInstance(); 
      HIDDeviceInfo[] infos = hidManager.listDevices(); 
       for (HIDDeviceInfo info : infos) { 
       System.out.println("info: " + info.toString()); 
       } 
} 

我在代碼中使用這種方法,但它在這一行如何訪問USB設備信息並使用Java代碼探索它?

for(HIDDeviceInfo info : infos){ System.out.println("info: "+info.toString()); }

異常是發生了異常:

java.lang.NullPointerException at JavaClass.MyClass.main(MyClass.java:23)

和hidmanager給空

請幫助我在此代碼或任何備用解決方案,謝謝

+0

你是問 「爲什麼我得到一個NullPointerException?」?因爲這個答案是「因爲'hidManager'爲空」。或者你問爲什麼'hidManager'爲空? – immibis 2015-02-12 07:53:15

+1

是啊,因爲hidManager爲null而導致NullPointerException,這很明顯,但爲什麼?我已將USB設備連接到我的計算機上,但它仍然會引發異常... – 2015-02-12 07:56:49

+0

我對HID API(甚至是什麼;有些信息可能會幫助人們找到答案)不知情。只是提出一個小問題的建議。 – immibis 2015-02-12 07:59:41

回答

1

試試這個方法:

public void show() { 
    System.out.println("File system roots returned by FileSystemView.getFileSystemView():"); 
    FileSystemView fsv = FileSystemView.getFileSystemView(); 
    File[] roots = fsv.getRoots(); 
    for (int i = 0; i < roots.length; i++) { 
     System.out.println("Root: " + roots[i]); 
    } 

    System.out.println("Home directory: " + fsv.getHomeDirectory()); 

    System.out.println("File system roots returned by File.listRoots():"); 
    File[] f = File.listRoots(); 
    for (int i = 0; i < f.length; i++) { 
     if (fsv.getSystemIcon(f[i]).toString().equals("Removable Disk")) { 
      try { 
       String myusb = f[i].getPath().toString(); 
       System.out.println("myusb : " + myusb); 
       java.awt.Desktop.getDesktop().open(new java.io.File(myusb)); 

      } catch (Exception exxx) { 
       exxx.printStackTrace(); 
      } 
      System.out.println("Drive: " + f[i]); 
      System.out.println("Display name: " + fsv.getSystemDisplayName(f[i])); 
      System.out.println("Total space: " + f[i].getTotalSpace()); 
      System.out.println("Usable space: " + f[i].getUsableSpace()); 
      System.out.println("Type: " + fsv.getSystemIcon(f[i])); 
      File[] f1 = f[i].listFiles(); 
      for (int k = 0; k < f1.length; k++) { 
       System.out.println("The All Files are" + f1[k]); 
       if ((f1[k]).getName().equals("query.txt")) { 
        System.out.println("The File is" + f1[k]); 
       } 

      } 

     } 
    } 

} 
相關問題