Java调用C++编写的动态库(JNI)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Study_lizi/article/details/73740207

1. 在eclipse里利用java创建一个类,在类中加入带有native的方法(eclipse创建的类会自动添加class在bin目录下)
这里写图片描述
2.利用javah命令生成本地方法的c++头文件。进入到工程bin目录下,按住shift,并右击,选择 “在此处打开命令窗口”,进入命令窗口;输入 “javah -classpath . -jni 包名加上类名”,在bin目录下生成包名_类名.h头文件
这里写图片描述
注:
有些博客上写直接“javah 包名加上类名 ”就可以,但我在做的过程中他显示找不到相关的类文件,暂时还不知道怎么回事
-classpath 用于装入类的路径
-jni 表示生成jni的头文件
3. 利用VS生成动态库(新建项目,后续选择dll)
4. 拷贝jdk–>include中的jni.h,jni_md.h,和利用javah生成的头文件这三个头文件到vs生成的项目中,这是出现了这里写图片描述错误,头文件是复制到本地文件的,不是库文件了,要将<>改为“”。
5. 利用C/C++编写实现本地方法。
这里写图片描述
实现后生成dll动态库。
6. 将dll动态库拷贝到工程下(也可放到其他地方,我选择的是工程目录下),设置一下:
这里写图片描述
7. 编写测试类及进行测试
这里写图片描述
很幸运成功了,在这个过程中暂时没有出现问题,以后用的过程中出现问题后再补充。
补充:
JNI:Java Native Interface,是java提供的一种通用接口,用于java代码与本地化代码交互。
本地化代码,就是直接编译成语机器相关的二进制代码

猜你喜欢

转载自blog.csdn.net/Study_lizi/article/details/73740207