Method Signatures#

Format: ()

Examples:

  • ()V

  • (Ljava/lang/Object;)Ljava/lang/Object;

Getting JNI Environment#

JNIEnv *env;
(*jvm)->AttachCurrentThread(jvm, (void**)&env, NULL);

Getting Class#

jclass clazz = (*env)->FindClass(env, name);

Getting Object Class#

jclass clazz = (*env)->GetObjectClass(env, object);

Getting Constructor#

jmethodID constructor = (*env)->GetMethodID(env, cls, "<init>", signature);

Getting Method#

jmethodID method = (*env)->GetMethodID(env, clazz, name, signature);

Creating New Object#

jobject object = (*env)->NewObject(env, clazz, constructor);

Invoking Void Method#

(*env)->CallVoidMethod(env, object, method);

Creating Byte Array#

jbyte *data = ...
jint size = ...

jbyteArray result = (*env)->NewByteArray(env, size);
(*env)->SetByteArrayRegion(env, result, 0, size, data);

References#