JNI——java native interface
(一)开篇
1.为什么要使用jni
Java有些时候需要调用本地代码(C/C++),jni接口提供了
java与操作系统本地代码互相调用的功能
2.最简单的java调用C/C++代码步骤
(1)首先在java类中声明一个native方法
(2)使用javah命令生成包含native方法定义的C/C++头文件,
并添加到visualC++ win32 dll工程目录下
(注意加载jdk/include/目录下的jni.h和jni_md.h文件到工程)
(3)按照生成的C/C++头文件来写C/C++源文件
(4)将C/C++源文件编译成动态链接库(DLL),在debug中找到
(5)把DLL文件加入到PATH环境变量下
(6)Java类中加载DLL,然后调用声明的native方法(注意先
让eclipse重新启动以重新读取环境变量)
System.loadLibrary("nativeCode");//Java类中加载DLL,然后调用声明的native方法
TestNative tst=new TestNative();
tst.sayHello();
3.使用jni的两个弊端
(1)使用了jni,那么这个java Application将不能跨平台。如
果要移植到别的平台上,那么native代码就需要重新进行编写
。
(2)Java是强类型语言,而C/C++不是。因此,你必须在写
JNI是更小心
总之,必须在构建Java程序的时候,尽量少用本地代码