1. 程式人生 > >Eclipse下配置javah.exe自動生成jni標頭檔案

Eclipse下配置javah.exe自動生成jni標頭檔案

最近專案中需要用到JNI來進行java和c++之間的互動,去命令列呼叫javah.exe命令生成jni標頭檔案的方法比較麻煩,可以通過配置Eclipse來解決這個問題,配置方法如下:

1、首先確保你的環境配置沒有問題(我想既然都開始用JNI了因該不會有問題吧!)
2、開啟如下按鈕 external tools configurations…
這裡寫圖片描述
3、選中program,然後點選上面的帶有+號的文件,新建一個專案
這裡寫圖片描述
4、設定專案名和一些相關配置資訊。
這裡寫圖片描述
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設定:參考下圖
這裡寫圖片描述

Common設定:參考下圖
這裡寫圖片描述

點選下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"); }*/ }

目錄結果如下:
這裡寫圖片描述

選中test.java 點選 編譯
這裡寫圖片描述
就能生成標頭檔案了
這裡寫圖片描述

/* 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