JVM是开源代码吗?如果没有,如何获取JVM代码?
Answers:
在这里查看热点JVM:http : //openjdk.java.net/groups/hotspot/
src\share\native\java\lang\Thread.c
I之后,我发现本机方法的实现已interrupt0
被挖掘JVM_interrupt
。在哪里可以找到它的来源?那是热点吗?
这完全取决于您使用哪个JVM。
如果使用OpenJDK JVM,则可以从此处获取源代码。
如果使用Kaffe JVM,则可以从此处获取源代码。
如果使用Sun JVM 6或更高版本,则可以从此处获取源。
如果您使用的Sun JVM早于6,则通常可以通过学术许可获得该源。如果使用IBM,Oracle,HP或其他JVM,则源未打开。
2013年5月更新
仍然可以通过上面的链接访问Version 6源,或者可以通过此链接访问它。后面的链接还包括一个方便的族谱表,该表显示了Oracle JDK和OpenJDK版本如何相互匹配。
另外,可以在此处找到Java 7源的最新版本。。这也包括自GA以来对Java 7发行版的修复。
而且,对于任何人来说都不足为奇,可以在这里找到Java 8源。
JVM的核心部分在OpenJDK的hotspot模块中。但是,您最需要的是src.zip。
这些类之外的热点模块是
因此,如果您想了解JVM的运行方式,最好查看常用的类。例如,即使lambda在运行时实际工作的程度较低,它大部分也位于src.zip中,而在JVM中却没有太多。
库的大多数源代码都随src.zip文件中的JDK一起提供。您的IDE将自动使用它。与熟悉JDK本身相比,熟悉这些库中的类要好得多。