1. 创建一个类
2. 使用javah -jni产生头文件
3. 用本地代码实现头文件中定义的方法,将编译生成的dll文件及lib文件复制到java类所在目录中
4. 测试
1、创建java项目(Eclipse/MyEclipse)
public class Test {
static{
System.loadLibrary("Dll");
}
public native static int getResult();
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(getResult());
}
}
2、进去项目中的bin文件夹(此文件保存的都是编译后的字节码文件)
在cmd中使用javah Test(bin目录下)即可生成Test.h VC++的头文件
代码如下不需修改:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Test */
#ifndef _Included_Test
#define _Included_Test
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Test
* Method: getResult
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_Test_getResult
(JNIEnv *, jclass);
#ifdef __cplusplus
}
#endif
#endif
3.将jdk安装路径下 三个文件复制到 Visual Studio.net的安装目录下的X:\.....VS2012\VC\include目录中
注:版本不同,可自己找到相应目录即可
\jdk\include\jni.h
\include\win32\jawt_md.h
\jdk\include\win32\jni_md.h
打开VC++,新建一个DLL工程,选择空项目,命名为MyDLL。
将Test.h复制到该项目下
在头文件中添加进去
新建Test.cpp,根据Test.h实现相应函数。
代码如下:
#include"Test.h"
#include<stdio.h>
JNIEXPORT jint JNICALL Java_Test_getResult
(JNIEnv *, jclass){
return 99;
}
编译生成MyDLL.dll及MyDLL.lib,将其复制到java项目中
4、运行即可 会在控制台打印99