【问题标题】:JDK Native Code ImplementationJDK原生代码实现
【发布时间】:2023-08-16 14:20:01
【问题描述】:

我想知道是否可以获取JDK方法的Native Code实现,例如:

public final class System {

/* First thing---register the natives */
private static native void registerNatives();
...
....}

【问题讨论】:

标签: jvm java-native-interface native java


【解决方案1】:

搜索 OpenJDK 源代码(它是开源的),或任何其他开源 Java 实现,您可以找到实现。

例如System class source(获取complete OpenJDK source 可能比这个“网络视图”更方便)。

注意:registerNatives() 正在使用本机 (C/C++ ?) 代码,因此您需要跟踪它(例如从完整的源代码)。或您感兴趣的任何其他实现。

【讨论】:

  • 问题是关于本机代码,所以难怪它似乎在使用它:)
  • True :) 但我的答案更多的是“选择你最喜欢的开源 Java 实现并查看代码,并带有 OpenJDK 示例”。更像是一个指针而不是确切的答案,所以它更通用。
  • 除了它错过了实际代码的关键链接。 Java 源代码非常容易查找。
【解决方案2】:

以上部分代码不足以实现native方法,可以查找详细资料http://www.javaworld.com/javatips/jw-javatip23.html

【讨论】:

    【解决方案3】:

    所有这些都可以从 OpenJDK Mercurial 存储库 Web 视图中获得,但要追踪它绝非易事。

    This here is a link to java.lang.System JDK 7 更新流的最新开发版本中的本机代码。希望你能从那里找到自己的路。

    【讨论】: