Eclipse下配置javah.exe自动生成jni头文件

时间:2022-06-17 09:09:39

最近项目中需要用到JNI来进行java和c++之间的交互,去命令行调用javah.exe命令生成jni头文件的方法比较麻烦,可以通过配置Eclipse来解决这个问题,配置方法如下:

1、首先确保你的环境配置没有问题(我想既然都开始用JNI了因该不会有问题吧!)
2、打开如下按钮 external tools configurations…
Eclipse下配置javah.exe自动生成jni头文件
3、选中program,然后点击上面的带有+号的文档,新建一个项目
Eclipse下配置javah.exe自动生成jni头文件
4、设置项目名和一些相关配置信息。
Eclipse下配置javah.exe自动生成jni头文件
Name设置:随便起我这里起的是javaH

Main设置:
Location 点击Browse File System 设置
Working Directory 点击variables…选择 project_loc,然后加上\src
Arguments: 直接复制粘贴

-classpath .;./classes -d "${project_loc}/jni" -jni ${java_type_name}

Refresh设置:参考下图
Eclipse下配置javah.exe自动生成jni头文件

Common设置:参考下图
Eclipse下配置javah.exe自动生成jni头文件

点击下apply。

5、编写测试代码

package jni.exercise;

public class test {

public native int add(int a,int b);
public native int compare(int a,int b);

public static void main(String[] args) {
// TODO Auto-generated method stub

}

/* static {
System.loadLibrary("TestJNI");
}*/


}

目录结果如下:
Eclipse下配置javah.exe自动生成jni头文件

选中test.java 点击 编译
Eclipse下配置javah.exe自动生成jni头文件
就能生成头文件了
Eclipse下配置javah.exe自动生成jni头文件

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class jni_exercise_test */

#ifndef _Included_jni_exercise_test
#define _Included_jni_exercise_test
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: jni_exercise_test
* Method: add
* Signature: (II)I
*/

JNIEXPORT jint JNICALL Java_jni_exercise_test_add
(JNIEnv *, jobject, jint, jint);

/*
* Class: jni_exercise_test
* Method: compare
* Signature: (II)I
*/

JNIEXPORT jint JNICALL Java_jni_exercise_test_compare
(JNIEnv *, jobject, jint, jint);

#ifdef __cplusplus
}
#endif
#endif

ok 到这里就结束了。
参考文献:
http://blog.csdn.net/mirkerson/article/details/17187109
http://blog.csdn.net/ling1874/article/details/20358041
http://www.oschina.net/question/1402563_133543