Java Native Interface

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 <jni.h>
  /* 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 <jni.h>
   #include <cn_jni_HelloWorld.h>
   #include <stdio.h>
   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
   

你可能感兴趣的:(java,c,windows,jni,native)