我将为Java社区做出贡献,并对JVM感兴趣。

现在,我想下载最新的JVM Hotspot源代码并跟踪更新。

首先,我去http://openjdk.java.net/

在它的左侧,我找到了一些有用的标签

Source code:
Mercurial
Bundles
...
JDK 6
JDK 7
JDK 7 Updates
JDK 8 · Java SE 8
JDK 8 Updates
JDK 9 · Java SE 9
JDK 10


我只能找到有关如何下载JDK8u源代码的说明:http://openjdk.java.net/projects/jdk8u/

状态

我们欢迎jdk8u-dev林中的8u152修复程序。 (发布时间为2017-06-06 14:23:36

源代码

可以使用以下命令克隆用于持续开发的jdk8u-dev林:

可以使用以下命令克隆相应的主林jdk8u:

另外,可以通过克隆8u主目录林hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev;cd jdk8u-dev;sh get_source.sh .并使用'hg clone http://hg.openjdk.java.net/jdk8u/jdk8u;cd jdk8u;sh get_source.sh .'mercurial标签来获得最新版本8u102的源代码。



但是看来jdk9和jdk10也在列表中。它们是最新的源代码,如何下载?

JDK9页面未提供有关如何获取源代码的说明。
JDK9:http://hg.openjdk.java.net/jdk9

JDK10:http://openjdk.java.net/projects/jdk10/



此外,如果Java Community发布了新的更新,那么更新当前源代码的最佳方法是什么?重新下载还是使用Mercurial工具?



jdk源代码中的http://hg.openjdk.java.net/jdk8u/jdk8u是什么?它类似于git中的jdk8u102-b14吗?



另外,我可以找到另一种从JetBrains的github下载JVM Hotspot源代码的方法:

https://github.com/JetBrains/jdk8u_hotspot/tree/d37547149a7c5647ebffbbb62525cc62bd8e2673

但是我不确定这是最新的。

最佳答案

这取决于您所说的“最新”。

实际上,所有jdk8u,jdk9和jdk10信息库都保持最新状态。它们只是具有不同状态和接受不同更改集的单独项目。


jdk8u的最新更改将出现在JDK 8的未来更新中。这些更新主要包括错误修复。
jdk9存储库包含最新代码,这些代码将在JDK 9上发布。该项目现在处于Rampdown阶段2,这意味着仅showtopper错误可以在那里进行修复。尚未定义JDK 9发布后该存储库将发生什么-例如开始使用诸如jdk9u之类的东西。
jdk10包含有关Java SE平台未来版本的正在进行的工作。这里所做的重要改进很可能会在以后的某个时候移植到jdk9(当然,如果它们符合规范)。

请注意,新功能不是直接在此存储库中开发的。新功能必须通过JEP process。一些更大的功能甚至可以托管在单独的项目中,例如PanamaValhalla


OpenJDK项目的正式资料库位于http://hg.openjdk.java.net
要获取来源,请使用Mercurial,例如

hg clone http://hg.openjdk.java.net/jdk10/jdk10


它包含几个嵌套的存储库。 HotSpot JVM在hotspot下:

hg clone http://hg.openjdk.java.net/jdk10/jdk10/hotspot


以后,您可以使用hg pull -u将本地存储库与主服务器的更新同步。

在父存储库中,您还将找到有关如何获取源代码和构建OpenJDK的说明:common/doc/building.md。 jdk9存储库中有一个similar document

09-15 23:02