unsafe.cpp 如何链接到 openJDK 构建系统中的 Unsafe.java

How is unsafe.cpp linked to Unsafe.java in the openJDK build system

我已将 unsafe.cpp 和 Unsafe.java 克隆到自定义版本。我要构建新的 JVM,但似乎我的 UnsafeNew.java 内联了 unsafe.cpp 方法,而不是新的 unsafenew.cpp 方法。

希望在 openJDK 构建系统方面具有专业知识的人知道这是如何联系在一起的。

谢谢

汤姆

好吧,至少在 openJDK 7 中,答案是它被硬编码到构建系统中。虽然常规 JNI 需要 LoadLibrary() 调用,但对于 Unsafe 和少数其他文件,这是由编译器完成的。

在 hotspot/src/share/vm/prims/nativeLookup.cpp 中有一个名为

的数组
JNINativeMethod lookup_special_native_methods[] 

其中包括

{ CC"Java_sun_misc_Unsafe_registerNatives",NULL, FN_PTR(JVM_RegisterUnsafeMethods)} 

这样就可以了。

我希望我帮助了别人。

汤姆