2011-08-23 66 views
6

我发现这些开放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])); 
} 

,但我没能找到这些功能的本地implemetations 的currentTimeMillis nanoTime arraycopy

表我在哪里可以买到的这些功能的本地实现? 是否可以在JDK中使用?

回答

4

,如果发现它在

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

其他方法正好在它下面

相关问题