您的位置:首页 > 编程语言 > Java开发

Java JNI调用dll中的C代码的流程

2016-10-30 21:39 239 查看
1: 新建Java工程,在java中编写Nativie方法的声明和调用代码。如图1:



图1

2: window系统下打开cmd,进入java工程的bin目录下,输入javah命令+java类的全限定类名,生成JNI的头文件:

com_test_jni_JniTest.h (在java工程目录下),如图2所示



图2

3: 新建VS2013工程,将com_test_jni_JniTest.h复制到VS2013工程中,VS2013工程中右侧解决方案资源管理器中右键“头文件”-添加-现有项,找到com_test_jni_JniTest.h,点击确定。然后在com_test_jni_JniTest.h中发现报错:“找不到源文件:jni.h”。然后在windows中的JDK的安装目录中搜索并找到“jni.h”,将其复制到VS2013工程中,VS2013工程中右侧解决方案资源管理器中右键“头文件”-添加-现有项,找到jni.h,点击确定。同理在JDK目录中找到jni_md.h,然后复制到VS2013工程中。(注意:一定要把com_test_jni_JniTest.h中#include
<jni.h>改为#include "jni.h",否则还会报错。)

4: 新建01.c文件,实现.h中声明的方法,如图3所示



图3

5: 生成dll文件:

在VS2013开发环境中间Debug旁下拉箭头中选择“配置管理器中”的右上角“活动解决方案平台”-编辑-选择自己windows的平台。右键VS2013工程中右侧解决方案资源管理器中工程名,选择“属性”,然后将”配置类型“改为”动态库.dll“,然后重新生成解决方案。最后在工程目录中的Debug中可以找到New20160810.dll

6: 在java代码中,加载dll,如下代码:

static{
System.loadLibrary("New20160810");
}

7: 将New20160810.dll的复制到和src并列的目录,然后运行java工程即可以看到日志:C String,表示java通过JNI调用dll中的c代码成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jni