最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java通過(guò)JNI 調(diào)用動(dòng)態(tài)鏈接庫(kù)DLL操作

 更新時(shí)間:2020年11月25日 09:38:06   作者:浪丶小白  
這篇文章主要介紹了Java通過(guò)JNI 調(diào)用動(dòng)態(tài)鏈接庫(kù)DLL操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

JNI(Java Native Interface)Java本地接口,主要作用是實(shí)現(xiàn)java代碼與C、C++編寫的代碼交互。

在Android編程中,so庫(kù)的訪問(wèn)也用到了jni技術(shù)。

理論多說(shuō)無(wú)益,還是看java連接dll的實(shí)戰(zhàn)吧。如下:

例:java中調(diào)用demo.dll文件中的 hello()方法。

1、java

1)裝載dll文件

有兩種方式System.load();和System.loadLibrary();

load需要全路徑且需要有文件擴(kuò)展名;

loadLibrary是特定路徑,系統(tǒng)system32下或項(xiàng)目bin目錄下,只要文件名稱不要.dll擴(kuò)展名。

2)本地聲明方法

裝載完dll文件后,將使用的方法用native關(guān)鍵字聲明。

public class ConnectDemoDll{
 static{
  System.load("c://demo.dll");
  //或者
  //System.loadLibrary("demo");
 }
 public native static void hello();
}

3)生成.h頭文件

首先使用javac ConnectDemoDll.java生成.class文件,再使用javah ConnectDemoDll命令生成.h頭文件

#include<stdio.h> 
#include<ConnectDemoDll.h> 
JNIEXPORT void JNICALL JAVA_ConnectDemoDll_hello(JNIEnv *env,jobject obj);

生成的頭文件中方法命名為:java類的完整路徑_方法(中間下劃線分割)

注意:如果項(xiàng)目中調(diào)用現(xiàn)成的dll文件,我們必須知道C中方法的聲明,并在java程序中創(chuàng)建對(duì)應(yīng)的包結(jié)構(gòu),如果路徑不對(duì)應(yīng),運(yùn)行java程序時(shí)就會(huì)報(bào)錯(cuò)。當(dāng)包名調(diào)整了之后,請(qǐng)重新編譯對(duì)應(yīng)的dll文件。

2、C

根據(jù)生成的.h頭文件,實(shí)現(xiàn)所有的方法即可。

注:

一般項(xiàng)目中dll文件都是本來(lái)就有的,說(shuō)白了就是一開(kāi)始就有編譯好了的dll文件,在java中調(diào)用時(shí)一定要確保java類的包路徑和類名,要與dll對(duì)應(yīng)的方法全名路徑一致,否則會(huì)出錯(cuò)。

補(bǔ)充知識(shí):jni操作中java調(diào)用dll文件部署失效問(wèn)題

vs發(fā)布dll版本時(shí),沒(méi)有選擇release版本,而是用的debug版本,導(dǎo)致可能找不到需要依賴的dll

<audio controls="controls" style="display: none;"></audio>

以上這篇Java通過(guò)JNI 調(diào)用動(dòng)態(tài)鏈接庫(kù)DLL操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于PreparedStatement的setObject作用及說(shuō)明

    關(guān)于PreparedStatement的setObject作用及說(shuō)明

    這篇文章主要介紹了關(guān)于PreparedStatement的setObject作用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Springboot?接口需要接收參數(shù)類型是數(shù)組問(wèn)題

    Springboot?接口需要接收參數(shù)類型是數(shù)組問(wèn)題

    這篇文章主要介紹了Springboot?接口需要接收參數(shù)類型是數(shù)組問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 使用SpringBoot和JPA實(shí)現(xiàn)批量處理新增、修改

    使用SpringBoot和JPA實(shí)現(xiàn)批量處理新增、修改

    最近項(xiàng)目需要在JPA中使用ID進(jìn)行批量更新,所以下面這篇文章主要給大家介紹了關(guān)于使用SpringBoot和JPA實(shí)現(xiàn)批量處理新增、修改的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Java實(shí)現(xiàn)簡(jiǎn)易提款機(jī)

    Java實(shí)現(xiàn)簡(jiǎn)易提款機(jī)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)易提款機(jī),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Java中json格式化BigDecimal保留2位小數(shù)

    Java中json格式化BigDecimal保留2位小數(shù)

    這篇文章主要給大家介紹了關(guān)于Java中json格式化BigDecimal保留2位小數(shù)的相關(guān)資料,BigDecimal是Java中的一個(gè)數(shù)學(xué)庫(kù),可以實(shí)現(xiàn)高精度計(jì)算,文中給出了詳細(xì)的代碼實(shí)例,需要的朋友可以參考下
    2023-09-09
  • idea項(xiàng)目全局去掉嚴(yán)格的語(yǔ)法校驗(yàn)方式

    idea項(xiàng)目全局去掉嚴(yán)格的語(yǔ)法校驗(yàn)方式

    這篇文章主要介紹了idea項(xiàng)目全局去掉嚴(yán)格的語(yǔ)法校驗(yàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2023-04-04
  • Java設(shè)計(jì)模式之觀察者模式(Observer Pattern)詳解

    Java設(shè)計(jì)模式之觀察者模式(Observer Pattern)詳解

    觀察者模式(Observer Pattern)是一種行為型設(shè)計(jì)模式,它定義了一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都能夠自動(dòng)地得到通知并進(jìn)行更新,本文將詳細(xì)的給大家介紹一下Java觀察者模式,需要的朋友可以參考下
    2023-07-07
  • 利用Java實(shí)現(xiàn)word導(dǎo)入導(dǎo)出富文本(含圖片)的詳細(xì)代碼

    利用Java實(shí)現(xiàn)word導(dǎo)入導(dǎo)出富文本(含圖片)的詳細(xì)代碼

    這篇文章主要為大家詳細(xì)介紹了利用Java實(shí)現(xiàn)word導(dǎo)入導(dǎo)出富文本(含圖片),文中的示例代碼講解詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以學(xué)習(xí)一下
    2024-02-02
  • Springboot+Redis實(shí)現(xiàn)API接口限流的示例代碼

    Springboot+Redis實(shí)現(xiàn)API接口限流的示例代碼

    本文主要介紹了Springboot+Redis實(shí)現(xiàn)API接口限流的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 實(shí)例解析Java日期格式工具類DateUtil.java

    實(shí)例解析Java日期格式工具類DateUtil.java

    本文主要對(duì)Java日期格式工具類DateUtil.java進(jìn)行實(shí)例解析。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01

最新評(píng)論

龙岩市| 孝昌县| 积石山| 南华县| 沧源| 木兰县| 巴东县| 彭水| 博湖县| 红河县| 泌阳县| 垫江县| 瑞金市| 溧水县| 台南市| 壤塘县| 惠来县| 新津县| 河曲县| 堆龙德庆县| 色达县| 长岭县| 剑河县| 奉贤区| 会理县| 阿拉善盟| 浮梁县| 本溪| 六安市| 自治县| 柳州市| 衢州市| 通海县| 彰化市| 柘荣县| 苍梧县| 苗栗市| 临汾市| 海宁市| 获嘉县| 麻江县|