jni01

    xiaoxiao2025-06-01  30

    01,java中要写上要调用的方法

    public native static void getStringFromC();

    02,生成头文件 javah

    cmd---切换到src 目录下 

    输入javah -classpath . -jni com.xxx.xxxx.JniTest

    这样就能得到.h文件了

    03.讲头文件导入vs里面的头文件里面

    先把.h文件放入 vs工程目录里面去,然后点头文件添加现有项

    导入都会发现#include <jni.h>爆红  ----可以去jdk目录中搜索jni.h 文件

    将其添加现有项   改为#include "jni.h"  (因为这个文件不是系统的,系统的都是<>)

    还需要导入jni_md.h文件

    04.实现.h文件里面的函数

    .c文件中要:

    #include "com_xxx_xxxx_JniTest.h"

    //函数实现

    JNIEnv *env   2级指针  

    C的函数名称:Java _完整类名(包名)_ 函数名称

    JNIEXPORT jstring JNICALL  Java_xxxxxxxx_xxxxxxxxx_getStringFromC

    (JNIEnv *env ,jclass jcls){

    //返回一个字符串

    //将c的字符串转换为一个java的字符串

    return (*env)->NewStringUTF(env,"c string");

    }

    5.生成一个dll动态库文件 

    DeBug 窗口   配置管理器-----活动解决方案 ---平台-----x64

    vs 右面窗口 点击根目录右键  ----属性----配置类型------生成dll动态库---应用 

    在然后 生成-----生成解决方案

    6.java 中加载dll动态库

    static {

    System.loadLibrary("jni study);

    }

    转载请注明原文地址: https://ju.6miu.com/read-1299489.html
    最新回复(0)