jni获取java类的方法

时间:2023-05-10 08:39:28 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
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.wddqw.com/doc/186e100fa75177232f60ddccda38376baf1fe0fa.html