【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《jni获取java类的方法》,欢迎阅读!
jni获取java类的方法
一、通过反射获取java类的方法
# 1、通过类名直接获取 ```java
Class clazz = Class.forName("ClassName"); //获得Class对象 Method[] methods = clazz.getMethods();//获得Class对象的所有公用(public)方法 ```
# 2、通过实例化对象获取 ```java
Object obj = clazz.newInstance();// 获得实例
Method[] methods = obj.getClass().getMethods();//获得Class对象的所有公用(public)方法 ```
二、通过JNI获取java类的方法
JNI是一个为了在Java应用中调用其他语言写的函数的规范,它一般是用C/C++编写的库调用Java的函数,JNI也可以作为反过来,由Java调用其它语言编写的库。
获取JNI类的方法,可以参考如下代码: ```c
// 定义一个函数指针,用于指向类中需要调用的方法 typedef void (*HelloWorldFunc)(JNIEnv* env, jobject obj);
jint JNI_OnLoad(JavaVM* vm, void* reserved) { JNIEnv* env = NULL;
if (vm->GetEnv((void**) &env, JNI_VERSION_1_6) != JNI_OK) { return JNI_ERR; }
// 找到要调用的類名
jclass clazz = env->FindClass("className"); // 获取要调用的方法
jmethodID methodId = env->GetMethodID(clazz, "methodName", "()V");
本文来源:https://www.wddqxz.cn/186e100fa75177232f60ddccda38376baf1fe0fa.html