实践JNI调用及BUG汇总
文章目录
今天花了一上午的时间实践了一下通过JNI调用C/C++程序,遇到BUG也不少,总结如下:
使用到的工具:
- eclipse
- visual studio 2013
- jdk1.7
第一步:新建eclipse项目
1 | package com.duwei.jni; |
第二步:生成头文件
在java项目的bin目录下执行如下命令:
1
D:\Usersworkspace\Java\bin>javah -classpath . -jni com.duwei.jni.HelloWorld
在bin目录下将生成如下格式的头文件:
1
com_duwei_jni_HelloWorld.h
第三步:实现上述头文件的函数体:
打开visual studio 2013
新建Win32 Console Application->next->dll(动态链接库)->finish
打开项目所在文件夹将第二步生成的头文件拖入(实践证明直接再接在vs中拖入会报找不到文件的bug)
右键项目->properties->C/C++->General->Additional Include Directories添加如下:
1
2
3
41、JDK目录下include文件夹
C:\Program Files\Java\jdk1.7.0_60\include
2、JDK目录下include文件夹下的win32
C:\Program Files\Java\jdk1.7.0_60\include\win32如下图实现头文件中函数声明的函数体:
注意:如果为64位JDK请将图片上方的标示改为x64
第四步:使用dll
- 将上述生成的dll放于java项目的根目录,运行->run