java通过JNI调用C++(VC++6.0) 实例

来源:互联网 发布:pscs6软件官方下载 编辑:程序博客网 时间:2024/06/07 22:49

第一步:创建Java程序

public class AddTest {


public native int add(int x, int y);


public static void main(String[] args) {
AddTest hh = new AddTest();
System.loadLibrary("test");
int r = hh.add(30, 20);
System.out.println("result = " + r);



}
}

loadLibrary(“test”)是动态链接库的名字

方法要声明为Native

第二步:javac AddTest.java  ,生成AddTest.class文件

第三步:javah AddTest  ,生成AddTest.h文件

第四步:创建一个C++工程,新建--->工程------>win32 Dynamic-link library

//AddTest的测试实例
#include<iostream.h>
#include"AddTest.h"


JNIEXPORT jint JNICALL Java_AddTest_add(JNIEnv *ev, jobject obj, jint x, jint y) 

  return x+y; 

将第三步生成的AddTest.h文件拷贝到C++工程目录下。JNIEXPORT jint JNICALL Java_AddTest_add格式:java_类名_方法名

一劳永逸:将jni.h加入到VC6.0安装目录下的Include目录中。jni.h在JDK安装目录下的include中,同时得件include/win32中的两个头文件jawt_md.h、jni_md.h也导入到VC6.0中

编译C++项目,在debug目录下会生成一个***.dll文件。将此文件重命名为test.dll,并拷贝到java项目目录下。或者将test.dll目录添加到path环境变量下。

第五步:运行java程序,得到结果。有时,需要重启eclipse

0 0