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

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

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

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

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

理論多說無益,還是看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)建對應(yīng)的包結(jié)構(gòu),如果路徑不對應(yīng),運(yùn)行java程序時(shí)就會(huì)報(bào)錯(cuò)。當(dāng)包名調(diào)整了之后,請重新編譯對應(yīng)的dll文件。

2、C

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

注:

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

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

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

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

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

相關(guān)文章

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

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

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

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

    這篇文章主要介紹了Springboot?接口需要接收參數(shù)類型是數(shù)組問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(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)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Java實(shí)現(xiàn)簡易提款機(jī)

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

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xià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é)庫,可以實(shí)現(xiàn)高精度計(jì)算,文中給出了詳細(xì)的代碼實(shí)例,需要的朋友可以參考下
    2023-09-09
  • idea項(xiàng)目全局去掉嚴(yán)格的語法校驗(yàn)方式

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

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

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

    觀察者模式(Observer Pattern)是一種行為型設(shè)計(jì)模式,它定義了一種一對多的依賴關(guān)系,當(dāng)一個(gè)對象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對象都能夠自動(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ì),對大家的學(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接口限流的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 實(shí)例解析Java日期格式工具類DateUtil.java

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

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

最新評論

永川市| 元朗区| 专栏| 微山县| 邢台县| 兴山县| 永兴县| 民和| 依安县| 莱阳市| 鹤山市| 天镇县| 通州区| 盱眙县| 许昌市| 剑河县| 盐源县| 精河县| 高碑店市| 潍坊市| 汾西县| 虹口区| 南城县| 永定县| 宝丰县| 锡林郭勒盟| 海兴县| 武邑县| 平罗县| 射阳县| 凌海市| 博乐市| 衡水市| 鹿泉市| 金沙县| 正阳县| 巴青县| 肇庆市| 额敏县| 迁安市| 柳河县|