2015-10-14 187 views
-1

我目前正在爲需要檢測Oculus設備是否插入的項目工作。JNI依賴和跨平臺構建

我這樣做使用usb4java庫usb4java。

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

我想建立使用Maven和詹金斯,這是安裝在Ubuntu的服務器上我的節目,但我面對這個庫的一個問題:如果我的程序正在使用此機內置,我的功能不工作,但如果我在Windows上編譯它,我的功能就像一個魅力。

這裏是我使用的功能:

if (hub == null) { 
     UsbServices services = UsbHostManager.getUsbServices(); 
     hub = services.getRootUsbHub(); 
    } 
    //List all the USBs attached 
    List devices = hub.getAttachedUsbDevices(); 
    Iterator iterator = devices.iterator(); 
    boolean res = false; 
    while (iterator.hasNext()) { 
     UsbDevice device = (UsbDevice) iterator.next(); 
     UsbDeviceDescriptor desc = device.getUsbDeviceDescriptor(); 
     if (device.isUsbHub()) { 
      res = res || isOculusPlugged((UsbHub) device); 
     } 
     else { 
      try { 
       if (desc.idVendor() == 10291) { 
        res = true; 
       } 
      } catch (NullPointerException ignored) {} 
     } 
    } 

我沒有得到任何錯誤,但是檢測只是不工作(RES始終是假的),與Linux內置版本。

我檢查過,包括Windows在內的所有JNI庫在我運行的JAR-With-Dependencies中。

感謝您的幫助, 盧卡斯

+0

的問題? http://stackoverflow.com/questions/13450673/usb-detection-for-linux-os-using-java – javaguest

回答

0

原來這是你試過** ** jusb路徑