JNI 开发流程

2019-03-23  本文已影响0人  伊泽瑞额

JNI (Java Native Interface) 是 Java 调用c/c++ ,c/c++ 调用java de 一套 Api。

1.编写native 方法

package amn;

public class JniTest {
    
    // 1.编写native 方法
    public native static String getStringFromC();

    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

}

2.进入src 目录,用javah 命令,生成 .h头文件

Microsoft Windows [版本 10.0.17134.648]
(c) 2018 Microsoft Corporation。保留所有权利。

C:\Users\Amn>cd F:\workplace\amn\src

C:\Users\Amn>f:

F:\workplace\amn\src>javah amn.JniTest

F:\workplace\amn\src>

刷新后 得到.h文件:


image.png

3.复制 .h头文件到cpp工程中


image.png

然后在c 工程中点击头文件 --添加—> 现有项 选中 .h文件 打开发现爆红


image.png

4.复制jni.h 和jni_md.h文件到cpp工程中解决上述问题

#include "amn_JniTest.h"
//函数实现
JNIEXPORT jstring JNICALL Java_amn_JniTest_getStringFromC(JNIEnv  *env , jclass jsls) {
    //将c d的字符串转成一个java 字符串
    return (*env)->NewStringUTF(env,"c String");
}

image.png

点击生成---->生成解决方案 从而生成dll文件

image.png
image.png
package amn;

public class JniTest {
    public native static String getStringFromC();
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
     String text=getStringFromC();
     System.out.println(text);
    }
    
    //加载dll 动态库
    static {
        
        System.loadLibrary("Jni_study");
    }

}
上一篇 下一篇

猜你喜欢

热点阅读