java調(diào)用dll方法總結(jié)
常用的就是jni,jnative(基于jni封裝了自己的jar包) 注意:java調(diào)用dll,必須dll里做了對應(yīng)的處理。列如:方法名必須為_java_包名_類名_方法名
使用JNI調(diào)用dll步驟
新建一個java項目,將dll文件放入src下
配置改項目環(huán)境jre下native目錄,指向src
項目jdk一定不要用eclipse自帶的,用自己安裝的jdk路徑
按照dll里的目錄順序新建目錄及類
聲明跟dll里一樣的方法,方法前加native關(guān)鍵字(注意參數(shù)類型)
代碼靜態(tài)塊里寫(不要后綴):
static { System.loadLibrary("testDll"); }
之后寫main方法就可以調(diào)用了。如有報錯,注意觀察報錯信息,可能會缺少依賴dll文件
簡單封裝JNI
簡單封裝一個調(diào)用dll的類
代碼可以在資源共享,我的代碼中下載
調(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()); } }
以上就是本次文章的全部內(nèi)容,更多的內(nèi)容大家可以在腳本之家搜索,感謝你的支持。
相關(guān)文章
IntelliJ IDEA 2019.3激活破解的詳細方法(親測有效,可激活至 2089&
本教程適用于 JetBrains 全系列產(chǎn)品,包括 Pycharm、IDEA、WebStorm、Phpstorm、Datagrip、RubyMine、CLion、AppCode 等,本教程無需修改 hosts 文件,對IntelliJ IDEA 2019.3激活破解的詳細方法的相關(guān)知識感興趣的朋友一起看看吧2020-09-09java遞歸實現(xiàn)樹形結(jié)構(gòu)數(shù)據(jù)完整案例
遞歸算法的代碼比較簡潔,可讀性較好;但是在實際的業(yè)務(wù)處理中會出現(xiàn)多次的重復(fù)調(diào)用,如果處理不好,很容易出現(xiàn)StackOverflowError報錯,這篇文章主要給大家介紹了關(guān)于java遞歸實現(xiàn)樹形結(jié)構(gòu)數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2023-04-04java split結(jié)果去除空字符串的方法實現(xiàn)
在Java開發(fā)中,我們經(jīng)常需要對字符串進行分割操作,本文主要介紹了java split結(jié)果去除空字符串的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-10-10Bean?Searcher配合SpringBoot的使用詳解
這篇文章主要介紹了Bean?Searcher配合SpringBoot的使用,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06教你如何測試Spring Data JPA的Repository
Spring Data JPA 提供了一些便捷的方式來測試這種持久層的代碼,常見的兩種測試類型是集成測試和單元測試,本文通過示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-08-08使用String類型小數(shù)值轉(zhuǎn)換為Long類型
這篇文章主要介紹了使用String類型小數(shù)值轉(zhuǎn)換為Long類型操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09