说明:VC++6.0在虚拟机内运行,Eclipse在win7系统下运行,所以导致截图不一样(传了几次,截图都没上传成功,汗)
主要步骤:
1、创建java类,生成.h文件,供 .cpp 文件调用
2、.h文件在VC++6.0内的存放位置,以及调用jni.h的环境的配置
3、cpp文件的创建和dll的生成
4、生成dll文件在Eclipse中环境的配置
1、在eclipse项目中新建一个TestHello.java,创建Java类TestHello .java
public class TestHello {
public native void hello();
static{
System.loadLibrary("hello");
}
public static void main(String []args){
new TestHello().hello();
}
}
2、在命令行内输入 javacTestHello .java 编译生成TestHello .class文件。
在命令行下使用javah TestHello 命令,生成TestHello .h头文件(就是jni代理stub的接口)。
3、 vc生成dll文件的过程:
文件-->新建-->工程选项卡--》win32 Dynamic-Link Library,在工程名称中输入名称例如:hello,点确定--》一个空的DLL工程(E)--》完成--》确定。
在弹出的窗口中创建一个空的DLL工程,点击Finish。
打开项目所在的文件目录,将步骤2中生成的TestHello .h文件复制到Include文件夹下:
在VC的菜单上选择Tools-Options…,打开选项对话框。在Directories文件夹,添加上jdk所在文件夹下的include和include/win32文件夹。
接着再点击文件--》新建--》文件选项卡:C++ Source File--》输入文件名:例如hello,确定进入hello.cpp编辑窗口,代码如下:
#include <jni.h>#include "TestHello.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_TestHello_hello(JNIEnv *env,jobject obj)
{
printf("success!!\n");
}
点击VC上的菜单项Build,生成hello.dll。
运行成功后,hello.dll存放在VC项目Debug文件夹中的
4、将hello.dll复制到任何文件夹下,我放在了bin文件夹下。
然后配置eclipse的buildPath,Native library location,默认为空,点击Edit配置,即找到hello.dll所存放的目录
5、点击run as 运行