一、使用过程:
编写java代码->编译java代码->利用javah 命令生成生成相应的c/c++头文件->编写c/c++代码->利用vs命令制作dll共享库->运行java程序
二、实例使用
(1)编写java代码
public class JNITest {
//声明本地方法,将在cpp文件中实现
public native static void dispHelloWorld();
public static void main(String[] args) {
System.loadLibrary("helloworld");
dispHelloWorld();
}
}
(2)利用javah命令生成头文件
首先是进入java文件的工作目录,然后产生头文件
头文件的内容如下
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class jnitest_JNITest */
#ifndef _Included_jnitest_JNITest
#define _Included_jnitest_JNITest
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: jnitest_JNITest
* Method: dispHelloWorld
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_jnitest_JNITest_dispHelloWorld
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
(3)编写c++代码
/* DO NOT EDIT THIS FILE - it is machine generated */
#include "jnitest_JNITest.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_jnitest_JNITest_dispHelloWorld
(JNIEnv *env, jobject){//共同参数,可以使用env调用jni参数
printf("hello world,I am using JNI function");
return;
}
(4)利用vs的命令提示工具生成dll共享库,如果JDK是64位就是用64位的命令提示工具
(5)配置dll文件路径
(6)运行成功
java本地类型一般是java类型前加一个j