亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

java中JNI的簡單使用方法介紹(詳細)

來源:不言 發(fā)布時間:2018-10-10 16:20:50 閱讀量:1160

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于JNI的簡單使用方法介紹(詳細),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

JNI可以讓我們在java代碼中調(diào)用本地庫的功能。

下面記錄一下JNI簡單的使用方法

1、創(chuàng)建java端接口

1

2

3

4

5

6

7

8

9

10

11

public class JNIIterface {

    // 導入最終生成的dll文件

    static {

        System.loadLibrary("JNIDemo");

    }

 

    // 聲明dll文件中實現(xiàn)的接口

    public native int MyMethod();

     

    public native int add(int x, int y);

}

2. 生成接口對應(yīng)的C的頭文件

上面創(chuàng)建的JNIIterface類,JNIIterface .class文件的路徑:\JNIDemo\bin\base\JNIIterface .class

在工程目錄下的bin目錄下執(zhí)行命令:javah -classpath . -jni base.JNIIterface

然后會在\JNIDemo\bin\目錄下生成base_JNIIterface.h文件

3. 使用visual studio編寫接口的實現(xiàn)

創(chuàng)建C工程,具體步驟如下:

第一步:

第二步:

第三步:

導入需要的頭文件

將上面第二步生成的頭文件,以及jdk根目錄下include目錄下的jni.h和

include的win32目錄下的jni_md.h文件拷貝到工程目錄下的頭文件目錄下

創(chuàng)建功能實現(xiàn)文件

在工程目錄下源文件上右鍵,并點擊添加-》類

并編寫如下代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#include "base_JNIIterface.h"

#include "jni.h"

#include <stdio.h>

 

JNIEXPORT jint JNICALL Java_base_JNIIterface_MyMethod

  (JNIEnv *, jobject){

      printf("成功實現(xiàn)JNI測試DEMO");

      return 0;

}

 

JNIEXPORT jint JNICALL Java_base_JNIIterface_add

  (JNIEnv *, jobject, jint a, jint b){

      return a + b;

}

4. 生成dll文件

在工程目錄中的「解決方案」上右鍵,選擇屬性,然后如下圖所示構(gòu)成項目

然后編譯工程后,會在工程目錄下的Release目錄下成成dll文件

5. 將dll文件配置到j(luò)ava工程

首先向dll文件放在java工程根目錄下的lib目錄下

然后按照如下步驟將dll文件作為Native Library添加進工程

編輯上圖所示的Native Library Location,然后在彈出的界面選擇Native Library所在的文件夾:

6. 編寫測試類,檢證JNI是否成功應(yīng)用public class HelloJNI {

1

2

3

4

5

6

7

8

    public static void main(String[] args) {

        JNIIterface hw = new JNIIterface();

        int t = hw.add(3, 7);

        int s = hw.MyMethod();

        System.out.println(t);

        System.out.println(s);

    }

}

運行后的測試結(jié)果如下:

1

2

3

0

0

成功??JNI??DEMO

上面就是記錄了使用JNI的最基本步驟。

對于如何使用已經(jīng)寫好的第三方dll文件的功能,比如系統(tǒng)的dll文件,還需要進行深入探索。


分享:
評論:
你還沒有登錄,請先