您好,登錄后才能下訂單哦!
小編給大家分享一下java如何調(diào)用dll,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
常用的就是jni,jnative(基于jni封裝了自己的jar包) 注意:java調(diào)用dll,必須dll里做了對(duì)應(yīng)的處理。列如:方法名必須為_(kāi)java_包名_類(lèi)名_方法名
使用JNI調(diào)用dll步驟
新建一個(gè)java項(xiàng)目,將dll文件放入src下
配置改項(xiàng)目環(huán)境jre下native目錄,指向src
項(xiàng)目jdk一定不要用eclipse自帶的,用自己安裝的jdk路徑
按照dll里的目錄順序新建目錄及類(lèi)
聲明跟dll里一樣的方法,方法前加native關(guān)鍵字(注意參數(shù)類(lèi)型)
代碼靜態(tài)塊里寫(xiě)(不要后綴):
static { System.loadLibrary("testDll"); }
之后寫(xiě)main方法就可以調(diào)用了。如有報(bào)錯(cuò),注意觀察報(bào)錯(cuò)信息,可能會(huì)缺少依賴(lài)dll文件
簡(jiǎn)單封裝JNI
簡(jiǎn)單封裝一個(gè)調(diào)用dll的類(lèi)
代碼可以在資源共享,我的代碼中下載
調(diào)用代碼(主要是static塊代碼變了),DllUtil這塊代碼在共享里下載
static { try { DllUtil.extractFromJar("testDll.dll", "testDll.dll", System .getProperty("java.io.tmpdir")); System.load(System.getProperty("java.io.tmpdir") + "\\testDll.dll"); System.out.println("load testDll.dll success!!"); } catch (Exception e) { System.out.println("testDll.dll error:" + e.getMessage()); } }
以上是“java如何調(diào)用dll”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。