最近做的一个项目需要用到java的JNI程序来调用dll动态链接库,看了不少别人博客,自己整理下了关于在java中使用JNI的一些步骤。
1.在myEclipse中新建一个Java工程。目录是 D:\JNIDemo
2.新建一个类:com.madman0621.jni.JNITest,并且书写native接口代码。
package com.madman0621.jni;
public class JNITest {
public native void hello();
}
3.用命令行进入D:\JNIDemo\src\com\madman0621\jni目录,执行命令 javac JNITest.java ,将生成JNITest.class文件,将改文件剪切到D:\JNIDemo\bin\com\madman0621\jni目录下,覆盖之前的文件。
4.进入D:\JNIDemo\bin目录,运行命令 javah -jni com.madman0621.jni.JNITest将生成com_madman0621_jni_JNITest.h文件
5.然后将com_madman0621_jni_JNITest.h、jni.h和jni_md.h文件(后2个文件可以在jdk/include文件夹内找到,如果找不到可以直接上网搜索下载)这3个文件夹给C/C++开发端的头文件库中进行开发
#include <iostream>
#include <jni.h>
#include <com_Reliability.h>
#include <jni_md.h>
JNIEXPORT void JNICALL Java_com_madman0621_jni_JNITest_hello
(JNIEnv *, jobject){
std::cout<<"hello";
};
6.C/C++端开发完后生成的dll文件放置在C:\Windows\System32\ 目录下或者D:\JNIDemo\ 目录下,Javaweb项目可以放置到/lib文件夹下
7.新建一个测试类:com.madman0621.jni.Test
package com.madman0621.jni;
public class Test {
static{
//加载动态链接库
System.loadLibrary("JNITest");
}
public static void main(String[] args) {
//创建对象
JNITest jni = new JNITest();
//执行方法
jni.hello();
}
}
8.点击运行,大功告成。
参考:
jni:http://www.cnblogs.com/gansc23/archive/2011/03/27/1996790.html
C/C++书写dll链接库:http://www.cnblogs.com/icejoywoo/archive/2012/02/22/2363709.html