java中jni的是调用

来源:互联网 发布:醉红楼聊天软件下载 编辑:程序博客网 时间:2024/05/29 06:30


                               Javajni的是调用

首先咋java中生成native方法,运行一下:

然后使用dos命令移动到该项目的bin目录下:

bin目录下执行javah包名+类名 (例子:javah com.test.test1)命令,(前提示jdk安装和java环境配置没有问题),然后就会在bin目录下生成一个c++头文件:

接下来打开Visual Studio2013,新建一个项目:

Next后勾上dll链接库,点击完成


将刚才使用javah命令生成的头文件导入到刚在vs建的项目中,同时也把jdk安装目录下的%JAVAHOME%->include->jnic++头文件和%JAVAHOME%->include->win32->jni_mdc++头文件拷贝到刚在vs中建的项目中:

vs中打开刚刚在追加的在javajavah生成的c++头文件将导入的<jni.h>头文件改为”jni.h”,应为这时候不是再到系统中去寻找这个jni.h:

vs项目中新建一个c++源文件将java中的头文件导入进来,并将java中生成的头文件的JNIEXPORTvoidJNICALL Java_com_test_test1_sayhello(JNIEnv*,jobject);复制过来,修改一下,然后进行编译:(envobj两个参数将在c++头文件中操作java中的类和属性,例如用jfieldID fid_msg = env->GetFieldID(env->GetObjectClass(j),"message", "Ljava/lang/String;");

        jstring j_msg =(jstring)env->GetObjectField(obj, fid_msg);便可获取java类中的String类型的message属性,这样就实现了c++操作java的目的,更多东西不在此多说

现在在vs项目的Debug文件夹下就生成了jnitet.dll链接库:我们这时候将这个路径添加到path环境变量下,然后重启eclipse

 

 

回到java端,编译一下,ok

0 0
原创粉丝点击