java代码:
1、创建 一个包含native方法的类
public class HelloWorld {
/**
* Declare native method
*/
private native void displayHelloWorld();
/**
*
* Static piece
*/
static{
System.loadLibrary("hello") ;
}
/**
* Main test
* @param args
*/
public static void main(String[] args){
HelloWorld hw = new HelloWorld() ;
hw.displayHelloWorld();
}
}
2、javac 编译成class文件
3、javah -classpath . -jni cn.jni.HelloWorld 编译成h头文件
cn_jni_HelloWorld.h
内容如下:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include
/* Header for class cn_jni_HelloWorld */
#ifndef _Included_cn_jni_HelloWorld
#define _Included_cn_jni_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: cn_jni_HelloWorld
* Method: displayHelloWorld
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_cn_jni_HelloWorld_displayHelloWorld
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
4、 用C/C++实现上方法 Java_cn_jni_HelloWorld_displayHelloWorld(JNIEnv *, jobject)
实现如下:
#include
#include
#include
JNIEXPORT void JNICALL Java_cn_jni_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj){
printf("Hello World! My Java native interface test success\n");
return ;
}
【注意】jni.h (java安装路径下:D:\Program Files\Java\jdk1.6.0_03\include目录下)复制到vc安装目录下的include目录下
同时将D:\Program Files\Java\jdk1.6.0_03\include\win32目录下的 jawt_md.h、jni_md.h也复制到vc安装目录下的include目录下
利用vc工具编译成hello.dll文件
5、将生成的hello.dll文件复制到:C:\WINDOWS\system32
6、运行HelloWorld