<1>建立一个Java Project项目工程,编写相应的代码如下:
/**
*
*/
package com.duoguo.jni;
/**
* @author shyboy(897948924@qq.com)
*
*/
public class TestNative {
private native void hello();
static {
System.loadLibrary("NativeCode");
}
/**
* @param args
*/
public static void main(String[] args) {
TestNative testNative = new TestNative();
testNative.hello();
}
}
<2>切换到Java Project工程的bin目录下,使用javah命令使TestNative类生成相应的头文件,命令如下:
javah com.duoguo.jni.TestNative
会在bin目录下生成名称为:com_duoguo_jni_TestNative.h的头文件
<3>使用VS2008开发工具建立一个Win32控制台应用程序的项目,并选择空dll,然后将bin目录下的头文件com_duoguo_jni_TestNative.h剪切到该项目目录下;
<4>编写NativeCode.cpp的代码,如下:
// NativeCode.cpp : 定义 DLL 应用程序的导出函数。
//
#include "stdafx.h"
#include <iostream>
#include "com_duoguo_jni_TestNative.h"
using namespace std;
JNIEXPORT void JNICALL Java_com_duoguo_jni_TestNative_hello(JNIEnv * env, jobject obj)
{
cout<<"Hello World"<<endl;
}
<5>按F5快捷键进行编译,若出现错误,则查看相应的错误信息,并将JDK的include目录下的jni.h和win32目录下的jni_md.h头文件拷贝到该C++工程下,再次进行编译,如不出意外,会生成NativeCode.dll文件;
<6>将NativeCode.dll文件的目录拷贝到环境变量的path路径下,然后重新MyEclipse开发工具,运行main()方法,在控制台会打印出相应的Hello World!信息,则成功调用。
这就是JNI的魅力所在,希望对你有所帮助,写的不好,敬请原谅。如有不清楚的地方,可咨询QQ897948924.