更多精彩内容,请见:http://www.16boke.com
by zxy,QQ群:168424095
(1)编写java代码JniDemo.java
class JniDemo
{
public native void printHello();
public native int add(int a, int b);
static
{
System.loadLibrary("JniDllDemo");
}
public static void main(String[] args)
{
JniDemo demo = new JniDemo();
demo.printHello();
int a = 3;
int b = 4;
System.out.println(a + "和" + b + "的和是:" + demo.add(3, 4));
}
}
(2)用javac JniDemo.java命令编译,生成JniDemo.class文件
(3)用javah JniDemo命令生成扩展名为.h的头文件
以下为VS2005用C++语言生成动态链接库的步骤:
新建项目,名称:JniDllDemo ->Win32->Win32项目->下一步->应用程序类型选择:DLL,附加选项勾上:空项目->完成。
在JDK安装目录找到头文件jni.h和jni_md.h。笔者这两个文件路径是:
jni.h在C:\Program Files\Java\jdk1.6.0_10\include
jni_md.h在C:\Program Files\Java\jdk1.6.0_10\include\win32
将头文件jni.h,jni_md.h及刚刚生成的JniDemo.h添加到工程中,并添加JniDemo.cpp源文件,实现本地方法:
#include "JniDemo.h"
#include <iostream>
using namespace std;
JNIEXPORT void JNICALL Java_JniDemo_printHello(JNIEnv *, jobject)
{
cout<<"Hello!"<<endl;
}
JNIEXPORT jint JNICALL Java_JniDemo_add(JNIEnv *, jobject, jint a, jint b)
{
return a+b;
}
生成Release版本JniDllDemo.dll
(5)将JniDllDemo.dll和JniDemo.class放在同一目录下,用java JniDemo命令运行可以看到输出:
Hello!
3和4的和是:7
更多精彩内容,请见:http://www.16boke.com