Loading... - 第一步 创建Java工程,命名JniDemo,添加JniDemo.java --------------------- ![1.png][1] 第二步 在Java类中添加native方法 --------------------- ``` /** * @author */ public class JniDemo{ public native static void set(int i); public native static int get(); } ``` 第三步 使用javah命令生成头文件 ------------------ 在cmd中执行javah javah com.bk.jnidemo.JniDemo,生成 com_bk_jnidemo_JniDemo.h 头文件 ![2.png][3] 第四步 创建DLL项目,使用Vs2010 --------------------- 创建Win32项目,项目名字JniDemo ![3.png][4] ![4.png][5] ![5.png][6] 第五步 拷贝com_bk_jnidemo_JniDemo.h,jni.h,jni_md.h至vs工程cpp文件目录下 --------------------- 其中jni.h在jdk的include目录下,jni_md.h在jdk的include\win32目录下 ![6.png][7] 在项目中添加头文件目录下com_bk_jnidemo_JniDemo.h,#include <jni.h> 改为 #include "jni.h" 第六步 在Jni.cpp中实现C++方法 --------------------- ![7.png][8] 第七步 生成64位dll库 --------------------- 先修改配置管理器 ![8.png][9] ![12.png][10] ![13.png][11] ![14.png][12] 然后生成64dll库 ![9.png][13] 第八步 把64位dll库拷贝至Java JniDemo项目根目录下,修改JniDemo.java --------------------- 注意64位dll在X64目录下,然后修改JniDemo.java如下 ``` package com.bk.jnidemo; public class JniDemo { static{ System.loadLibrary("JniDemo"); } public native static void set(int i); public native static int get(); public static void main(String[] args) { set(100); System.out.println(get()); } } ``` 第九步 运行 --------------------- ![10.png][14] ![11.png][15] ------------ ##javah命令生成头文件 jni 假如项目路径 ```D:\Workspacess\testJavaCallDll``` 要生成的类 ```D:\Workspacess\testJavaCallDll\src\com\testJavaCallDll\NativeTest.java``` 1. 打开cmd以及目录 打开cmd 然后进入src目录 演示:```cd D:\Workspacess\com\testJavaCallDll\src``` 2. 生成class 命令:```javac NativeTest.java``` 演示:```D:\Workspacess\testJavaCallDll\src\com\testJavaCallDll\>javac NativeTest.java``` 3. 生成头文件 命令:```javah testJavaCallDll.NativeTest ``` 演示:```D:\Workspacess\testJavaCallDll\src\com>javah testJavaCallDll.NativeTest``` [1]: /usr/uploads/2017/09/2301963236.png [2]: /p/157.html [3]: /usr/uploads/2017/09/1694851464.png [4]: /usr/uploads/2017/09/954930680.png [5]: /usr/uploads/2017/09/1564161082.png [6]: /usr/uploads/2017/09/707973107.png [7]: /usr/uploads/2017/09/2046678409.png [8]: /usr/uploads/2017/09/512476138.png [9]: /usr/uploads/2017/09/770690270.png [10]: /usr/uploads/2017/09/601984703.png [11]: /usr/uploads/2017/09/2391246958.png [12]: /usr/uploads/2017/09/1705428508.png [13]: /usr/uploads/2017/09/1934274735.png [14]: /usr/uploads/2017/09/1339429947.png [15]: /usr/uploads/2017/09/796432648.png 最后修改:2019 年 08 月 07 日 © 允许规范转载 打赏 赞赏作者 赞 如果觉得我的文章对你有用,请随意赞赏