前言
由于需求需要添加一個USB狗,作為服務的license驗證。則Java程序需要和dll進行整合。該USB狗已經提供了Java版本的dll,需要自己編寫class,載入dll,并聲明方法才能夠使用。
一、dll調用方法
常用的就是jni,jnative(基于jni封裝了自己的jar包) 注意:java調用dll,必須dll里做了對應的處理。列如:方法名必須為_java_包名_類名_方法名
使用JNI調用dll步驟:
新建一個java項目,將dll文件放入src下
按照dll里的目錄順序新建目錄及類
聲明跟dll里一樣的方法,方法前加native關鍵字(注意參數類型)
寫main方法調用。如有報錯,注意觀察報錯信息,可能是缺少依賴dll文件
二、調用異常
Exception in thread “main” java.lang.UnsatisfiedLinkError:
首先能夠確定的是,發生這樣的異常dll是被正確加載進來。才會報該異常內容。
其次,該異常是由于聲明類,并沒有按照dll當中的要求的package路徑進行編寫。修改成package相同,類名相同就可以正常運行了。
#UnsatisfiedLinkError 異常 ##異常:no xxx in java.library.path 當我們按照如下方式進行編寫的時候,假設loadLibrary沒有dll文件。
解決:在static代碼段中添加Java所運行的目錄,把dll放置到非全局環境中。
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。