JNI 生成C++接口方法.
来源:互联网 发布:aframe.js obj 编辑:程序博客网 时间:2024/06/05 05:12
步聚如下:
1.定义包名,写java类,添加native方法;
2.编译有native方法的java类,生成class文件;
3.javah生成native方法所对应.h,有助编写c实现;
注意:经常会出现类找不到等问题,总结如下用法:
进入java工程\bin目录,进行命令:javah -classpath classes com.xxx.xxx.ClassName [回车]
在bin目录下生成###.h文件
4.利用.h生成如下cpp;
#include <jni.h>extern "C" void start(JNIEnv *env, jobject thiz, jstring s, jint i){}extern "C" void stop(JNIEnv *env, jobject thiz){}#define JNIREG_CLASS "com/qijie/jni/JniFunc"//指定注册类/** * Table of methods associated with a single class. */static JNINativeMethod gMethods[] = { { "start", "(Ljava/lang/String;I)V",(void*)start}, //注意参数描述V后面没有“;”{ "stop", "()V",(void*)stop }, };/* * Register several native methods for one class. */static int registerNativeMethods(JNIEnv* env, const char* className,JNINativeMethod* gMethods, int numMethods) {jclass clazz;clazz = env->FindClass(className);if (clazz == NULL) {return JNI_FALSE;}if (env->RegisterNatives(clazz, gMethods, numMethods) < 0) {return JNI_FALSE;}return JNI_TRUE;}/* * Register native methods for all classes we know about. */static int registerNatives(JNIEnv* env) {if (!registerNativeMethods(env, JNIREG_CLASS, gMethods,sizeof(gMethods) / sizeof(gMethods[0])))return JNI_FALSE;return JNI_TRUE;}/* * Returns the JNI version on success, -1 on failure. */JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) {JNIEnv* env = NULL;jint result = -1;if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK) {return -1;}assert(env != NULL);if (!registerNatives(env)) { //注册return -1;}/* success -- return valid version number */result = JNI_VERSION_1_4;return result;}
- JNI 生成C++接口方法.
- jni c调用java的方法签名生成方法
- JNI调用C方法
- 通过native方法编写JNI接口及通过VS2010生成dll文件
- Java调用本地接口jni与C通信----------------JNI
- JNI之------C调用java接口
- jni - c 调用java方法
- javah生成jni的C函数声明
- linux下javah生成jni本地方法
- 命令行生成android jni头文件方法
- 生成jni头文件的一种方法
- 1.JNI中用Javah生成方法签名
- Androidstudio编译c/c++jni方法
- 利用javah技术生成jni接口的详细步骤
- Jni接口
- 在Eclipse里利用javah把java代码声明的JNI方法自动生成成C\C++头文件
- Android-调用本地方法实现将C进程分支出来即生成系统进程/NDK-JNI开发实例(九)
- 安卓JNI--JNI底层C回调Java方法
- 编辑删除SM12锁记录
- Golang多线程文件传输
- 有道单词本修改背景颜色
- Big.LITTLE+Mali结合——低功耗的趋势
- asp.net 新闻发布多附件上传
- JNI 生成C++接口方法.
- Java开发环境的配置
- 美媒揭对华5大误区:解放军已非祖父时代那支军队
- 正大教育安老师为csdn会员传授计算机知识
- C#中线程的学习
- Linux学习笔迹(三)--磁盘与文件系统管理
- OCP-1Z0-052-V8.02-38题
- 就把这当作开始。
- Android源码中所使用到的设计模式design patterns