天天看點

java生成.h檔案指令javah使用方式

javah -classpath . -jni 類路徑.JNIClass(提供的接口,編譯後)
           
/**
*TokenFxxcImpl類中方法聲明方式
*/
public static native Object[] getCreditTokenJni(long meterNo, int sgc, int tariffIndex,
            int keyVersion, int keyExpiredTime, long keyNo, int seqNo,
            int amount);
           
示例:F:\android program\Fxxc_T\bin>javah -classpath . -jni com.fxxc.TokenFxxcImpl
           
  1. F:\android program\Fxxc_T\bin 為編譯後的包路徑
  2. javah -classpath . -jni 生成.h的java指令
  3. com.fxxc.TokenFxxcImpl 編譯後的class帶包名的路徑
  4. 執行完後會在bin目錄下生成.h檔案com_fxxc_TokenFxxcImpl.h

.h檔案内對應方法接口如下

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

#ifndef _Included_com_fxxc_TokenFxxcImpl
#define _Included_com_fxxc_TokenFxxcImpl
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_fxxc_TokenFxxcImpl
 * Method:    getCreditTokenJni
 * Signature: (JIIIIJII)[Ljava/lang/Object;
 */
JNIEXPORT jobjectArray JNICALL Java_com_fxxc_TokenFxxcImpl_getCreditTokenJni
  (JNIEnv *, jclass, jlong, jint, jint, jint, jint, jlong, jint, jint);

#ifdef __cplusplus
}
#endif
#endif
           

最後在C語言中實作H檔案中的方法就行