簡體   English   中英

我在哪里可以找到這些函數的原生實現?

[英]Where can I find the native implementations of these functions?

我在打開的JDK(System.c文件)中找到了這些

static JNINativeMethod methods[] = {
    {"currentTimeMillis", "()J",              (void *)&JVM_CurrentTimeMillis},
    {"nanoTime",          "()J",              (void *)&JVM_NanoTime},
    {"arraycopy",     "(" OBJ "I" OBJ "II)V", (void *)&JVM_ArrayCopy},
};

#undef OBJ

JNIEXPORT void JNICALL
Java_java_lang_System_registerNatives(JNIEnv *env, jclass cls)
{
    (*env)->RegisterNatives(env, cls,
                            methods, sizeof(methods)/sizeof(methods[0]));
}

但我無法找到這些函數的本機實現currentTimeMillis nanoTime arraycopy

表單在哪里可以獲得這些函數的本機實現? 可以在開放式JDK中使用嗎?

如果發現它

JDK7 /熱點/ src目錄/股/ VM / prims / jvm.cpp:229

JVM_LEAF(jlong, JVM_CurrentTimeMillis(JNIEnv *env, jclass ignored))
 JVMWrapper("JVM_CurrentTimeMillis");
 return os::javaTimeMillis();
JVM_END

真正的實現(對於Linux)是在

/jdk7/hotspot/src/os/linux/vm/os_linux.cpp

其他方法就在它下面

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM