简单使用JNI
来源:互联网 发布:京东金融 人工智能 编辑:程序博客网 时间:2024/06/02 06:54
JNI: java native interface的缩写,java的本地调用,主要是为c/c++设计的。
一般的调用步骤:
1.在java类中声明native方法,javac编译该文件为class文件
2.使用javah命令生成包含native方法声明的c/c++头文件
3.vs中创建工程,添加生成的头文件和需要引用的头文件
4.根据生成的头文件写c/c++源文件,并编译成动态链接库(dll)
5.将dll文件放到项目中,在java中加载动态链接库,然后使用里面的方法
目录结构:
java代码中声明本地方法:
public class TestJni {/** * java调用c++ * @return */public native void getjni();}
使用javac命令,编译为字节码文件:
在该目录下就可以得到同名的class文件:
使用javah命令,得到头文件。文件要写绝对路径,路径要定位到包前,不要进入包(否则会报文件未找到错误):
这样就可以在项目中得到同名头文件(.h):
打开该文件你会看到,要引入jni.h文件:
创建c++工程:
新建项目,创建win32控制台程序:
点击下一步。
选择“dll”类型的空项目:
点击完成。
将需要的三个头文件复制到项目路径中。
jni.h在jdk的include目录下:
jni_md.h在jdk的include-->win32目录下:
新建空白源文件:
将头文件中声明的方法复制过来,写入具体的实现:
然后调试成功:
在debug目录下找到生成的dll文件:
工程结构:
将生成的dll文件复制到java项目中,是在根目录下,不要放到src里面:
在java中加载动态链接库,然后使用该方法:
public class TestMain {public static void main(String[] args) {System.loadLibrary("ConsoleApplication1");TestJni tjni = new TestJni();tjni.getjni();}}运行结果:
注意:
1.javah工具,我们通过它来生产jni头文件:
2.项目中添加的头文件不仅仅是你编译生成的那个,还需要jni.h 和jni_md.h,它们存放在jdk路径下,没有的话,会报文件未找到错误。
3.“jni.h”或者"jni_md.h"报错:找不到文件或者路径。<jni.h>这样是在系统目录下找的,改为"jni.h"这样就可以在项目目录下找到了。
- JNI 简单使用小结
- jni得简单使用
- JNI的简单使用
- 简单使用JNI
- jni简单使用
- jni的简单使用
- JNI的简单使用
- jni的简单使用
- JNI简单使用
- 一个简单的JNI使用
- Android-JNI的简单使用
- Jni的简单使用步骤
- Android JNI/NDK 简单使用
- Android studio 初步使用JNI(三)简单使用JNI
- Ubuntu下JNI的简单使用
- 简单的使用jni调用java方法
- jni与ndk之简单使用
- JAVA中JNI的简单使用
- Struts2学习笔记
- 使用Htmlunit上传文件
- c string 面试题
- android view画图笔记
- Struts2 的国际化实现
- 简单使用JNI
- 求一元二次方程的根,计算运费问题,计算个人所得税问题
- uva 11737 Extreme Primitive Society
- mysql编码以及乱码分析
- DLL/EXE查看工具Dumpbin
- c/c++ 变量生存期
- 状态压缩DP
- 高洛峰老师的BroPHP框架模型使用示例
- 反斜杠和斜杠的区别