本文共 591 字,大约阅读时间需要 1 分钟。
为了加深对java本地方法的理解,在网上找到了该方法的C源码部分,如下:
static JNINativeMethod methods[] = { {"hashCode", "()I", (void *)&JVM_IHashCode}, {"wait", "(J)V", (void *)&JVM_MonitorWait}, {"notify", "()V", (void *)&JVM_MonitorNotify}, {"notifyAll", "()V", (void *)&JVM_MonitorNotifyAll}, {"clone", "()Ljava/lang/Object;", (void *)&JVM_Clone}, }; JNIEXPORT void JNICALL Java_java_lang_Object_registerNatives(JNIEnv *env, jclass cls) { (*env)->RegisterNatives(env, cls, methods, sizeof(methods)/sizeof(methods[0]));}
很简单,就是对几个本地方法进行注册(也就是初始化java方法映射到C的方法)。 这里需要注意的是很多类里都有这个方法,但是执行的目标是不相同的,例如在我另一篇《》System里的这个方法,就不一样了。转载地址:http://fvzob.baihongyu.com/