導航:首頁 > 編程語言 > java插拔

java插拔

發布時間:2023-03-01 16:43:27

java如何實現usb口插拔事件的監測,最好有源代碼

java 要訪問 usb 設備,通常要自己寫c/c++代碼,然後再用 java 訪問這些組件,以達到控制usb設備的目的。但現在有一個開源組件 libusb 幫我們做好了訪問usb設備的封裝(包括windows、linux等平台)。我們用 java 訪問usb 設備時,可以通過訪問 libusb 組件提供的介面即可。要了解這個組件的 java 部分的 Demo、API等,可以訪問這里:http://libusbjava.sourceforge.net/

使用這個組件最重要的意義在於:
首先,你不再需要在 win、linux 等平台上寫 c/c++ 等 native 組件,甚至,你不需要知道 jni 怎麼寫;
其次,使用這個組件,你可以訪問所有的 usb 設備,當然,前提條件是你必須知道 usb 設備的相關指令(我當前就用這個組件,直接發usb能接受的命令,去控制我的指紋儀來工作)
最後,如果你的 usb 設備沒有驅動程序,比如,你的 usb 設備是自己研製出來的,還沒來得及為各種平台寫驅動程序,你可以用這個組件提供驅動程序

從:http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/ 下載 libusb-win32-bin-1.2.2.0.zip
從 http://sourceforge.net/projects/libusbjava/files/libusbjava-snapshots/20090517/ 下載 ch.ntb.usb-0.5.9.jar 和 LibusbJava_dll_0.2.4.0.zip
安裝 libusb-win32:
1)、解壓 libusb-win32-bin-1.2.2.0.zip;
2)、把目錄:\bin\x86 下的 libusb0_x86.dll 復制到 windows/system32 目錄下,並改名為:libusb0.dll;
3)、把目錄:\bin\x86 下的 libusb0.sys 復制到 windows/system32/drivers 目錄下
4)、運行 install-filter-win.exe ,從中選擇安裝你要訪問的 usb 設備
5)、運行 testlibusb-win.exe,有正確的提示信息。如下圖:

注意:如果你運行第4)步時,出現無法安裝libusb0服務、無法找到文件等錯誤,或者運行第5)步時,界面中「Driver version:」後面的版本號是,-1.-1 -1 ...這些情況,說明你的安裝不正常。原因可能是因為你的usb設備是新安裝的,且你沒有重啟計算機。你重啟一下計算機,再進行上述步驟,應該就可以了。
把 LibusbJava.dll 復制到 windows/system32 目錄下
這時,到達 ch.ntb.usb-0.5.9.jar 所在的目錄,運行: java -jar ch.ntb.usb-0.5.9.jar,這樣就會出來一個java swing做的窗口,如下圖。
當右鍵點擊倒數第二級的節點的時候,又會彈出新的窗口,在這個彈出窗口裡,你可以直接發送一些16進制的代碼給 usb 設備。但值得注意的是,這個窗口的代碼寫得有問題,其對16進制的代碼轉換為真正要發送的代碼時,轉換的是錯誤的代碼。這個錯誤可以自己下載源碼,更正即可。錯誤的類及方法是:
TestApp.java 中的方法:byte[] parseByteArray(String s);更正的代碼可以參考如下代碼:

Java代碼
重新編譯後,替換掉這個類,即可。
byte[] parseByteArray(String s) {
String[] hexs = s.split(" ");
byte[] bytes = new byte[hexs.length];
if(hexs.length > 0){
int i = 0;
for(String hex : hexs){
String s1 = hex.substring(2);
bytes[i] = (byte)(Integer.parseInt(s1, 16));
i++;
}
}
return bytes;
}

閱讀全文

與java插拔相關的資料

熱點內容
於丹pdf 瀏覽:713
反編譯ref 瀏覽:546
鴻蒙智能文件夾怎麼弄 瀏覽:544
grunt壓縮html 瀏覽:787
macpdfword轉換器 瀏覽:904
壓縮面膜是什麼材質 瀏覽:353
抖音發布作品怎麼建文件夾 瀏覽:13
安卓如何更改谷歌地區 瀏覽:273
airpods為什麼安卓連上聲音很大 瀏覽:510
聯想伺服器按鈕怎麼開不了機 瀏覽:93
蘋果xrapp程序庫沒有了怎麼辦 瀏覽:843
在上海程序員一個月多少工資 瀏覽:326
k歌解壓圖片 瀏覽:579
cad中清理多餘圖層的命令 瀏覽:989
華為nova8xe是安卓什麼 瀏覽:58
湯姆貓伺服器為什麼免費 瀏覽:274
safenet加密狗怎麼用 瀏覽:41
phpsql查詢變數 瀏覽:104
地磅儀表盤加密方法 瀏覽:480
brew安裝php環境 瀏覽:829