第一步 创建Java工程,命名JniDemo,添加JniDemo.java
第二步 在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 头文件
第四步 创建DLL项目,使用Vs2010
创建Win32项目,项目名字JniDemo
第五步 拷贝com_bk_jnidemo_JniDemo.h,jni.h,jni_md.h至vs工程cpp文件目录下
其中jni.h在jdk的include目录下,jni_md.h在jdk的include\win32目录下
在项目中添加头文件目录下com_bk_jnidemo_JniDemo.h,#include <jni.h> 改为 #include "jni.h"
第六步 在Jni.cpp中实现C++方法
第七步 生成64位dll库
先修改配置管理器
然后生成64dll库
第八步 把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());
}
}
第九步 运行
javah命令生成头文件 jni
假如项目路径 D:\Workspacess\testJavaCallDll
要生成的类 D:\Workspacess\testJavaCallDll\src\com\testJavaCallDll\NativeTest.java
- 打开cmd以及目录
打开cmd
然后进入src目录 演示:cd D:\Workspacess\com\testJavaCallDll\src
- 生成class
命令:javac NativeTest.java
演示:D:\Workspacess\testJavaCallDll\src\com\testJavaCallDll\>javac NativeTest.java
- 生成头文件
命令:javah testJavaCallDll.NativeTest
演示:D:\Workspacess\testJavaCallDll\src\com>javah testJavaCallDll.NativeTest