Eclipse:
新建Java项目然后新建类
代码
package test;
public class Hello
{
publicnative void sayHello();
static
{
System.loadLibrary("qq");//这个就是你要生成的dll文件放在项目下就可以了
}
publicstatic void main(String[] args)
{
Helloh = new Hello();
h.sayHello();
}
}
然后到bin文件夹下面
运行
test为包名
然后生成
查看test_Hello.h代码
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class test_Hello */
#ifndef _Included_test_Hello
#define _Included_test_Hello
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: test_Hello
* Method: sayHello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_test_Hello_sayHello
(JNIEnv*, jobject);//这就是C要实现的接口
#ifdef __cplusplus
}
#endif
#endif
VS2008:
文件新建->项目->Vistal C++->Win32->win32项目
Next:
然后导入Javah –Jni生成的文件
右键项目属性->配置属性->c/c++常规
然后点击包含目录 将头文件之前jni生成的(test_Hello.h)导入
然后在头文件的选项下
选择qq .h的文件
删除没用的代码
在qq.h里面添加
#include "jni.h"
#include "test_Hello.h"<-这是我之前导入的头文件
添加test_Hello.h方法
JNIEXPORT void JNICALLJava_test_Hello_sayHello
(JNIEnv *, jobject);
然后打开qq.cpp文件插入如下代码
#include "stdafx.h"
#include "zhou.h"
JNIEXPORT void JNICALLJava_test_Hello_sayHello
(JNIEnv *, jobject)
{
printf("hello world!");
}//方法实现
由于我们没有jni.h jni_md.h所以我们需要从java里面拿
在java目录下的include文件夹中把jni.h复制
再到win32文件夹下把jni_md.h复制到VS2008下VC的include里面
这时候要在vs2008下把菜单项改为release
然后右键项目生成不能点调试哦然后就生成dll和lib文件啦
最后把生成的dll文件复制到Java项目目录下 点击运行啦