1. 编写 Test.java 放入c:/
package com.wang.jni;
public class Test{
static {
System.loadLibrary("Helloworld");
}
public native void output();
public static void main(String[] args)
{
Test t =new Test();
t.output();
}
}
2. 编译javac -d . Test.java
3. 生成com_wang_jni_Test.h文件 javah com.wang.jin.Test
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_wang_jni_Test */
#ifndef _Included_com_wang_jni_Test
#define _Included_com_wang_jni_Test
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_wang_jni_Test
* Method: output
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_wang_jni_Test_output
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
4.生成C 的dll库
1) 选择new->projects(选择Win32 Dynamic-Link Library,以Step 1中指定的库名Helloworld作为工程名)->OK->An ampty DLL project->Finish。
2) 选择Tools->Options->Directories(添加目录C:/Program Files/Java/jdk1.6.0_21/include和C:/Program Files/Java/jdk1.6.0_21/include/WIN32)。在这些目录中包含JNI所需的头文件。
3) 将Step 3生成的com_wang_jni_Test.h拷贝到WinMsgDll工程文件夹中。然后FileView中添加这个头文件。
4) 添加源文件Helloworld.cpp,内容如下:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <stdio.h>
#include <jni.h>
#include "com_wang_jni_Test.h"
JNIEXPORT void JNICALL Java_com_wang_jni_Test_output(JNIEnv *, jobject)
{
int i, j;
for (i=0; i<7; i++)
{
for (j=0; j<=i; j++)
{
printf("*");
}
printf("/n");
}
printf("Hello World! JNI");
}
5) 编译生成Helloworld.dll文件。并将这个.dll文件拷贝到Step 1中说明的目录中
5. 执行java com.wang.jni.Test 生成结果