背景介绍
openJDK
是所有品牌版本JDK的 上游 代码库,是JDK的基础构建版本。用 Git
的话说,就是openJDK
是所有JDK的 Master 分支。
从 Java 11
开始 Oracle JDK
将与 openJDK
差别不大,而且 openJDK
还包含了 HotSpot JVM
的源代码。 所以要学习 Java
或 JVM
源代码的话,可以从 openJDK
的源码入手。
openJDK源码
方式一:从官方版本库获取
安装 mercurial
访问 Mercurial SCM 官网 ,首页就有安装包的下载链接。该软件支持 Windows
和 Mac OS X
系统,选择合适的版本下载与安装。如果是 Windows7+
系统,安装完后不用做任何配置,就可在命令行中执行 hg
命令:
选择源码版本
打开 openJDK 官网,在左侧导航栏中点击 Source Code 下的 Mercurial 链接:
进入openJDK所有项目的源码库后,就能看到 JDK
相关的库链接:
因为 Java
目前的主流版本是 Java 8
,所以可以选择进入 jdk8u
。在 jdk8u
项目库里我们可以看到它的所有分支,选择 Master 分支进入:
在这里我们可以看到项目的一些提交动态与历史纪录等,而我们只需要记住浏览器地址栏的库地址:http://hg.openjdk.java.net/jdk8u/jdk8u/
,好方便下面在本地电脑上下载源码:
下载源代码
在命令行中执行 cd
命令至指定路径下后,执行如下代码库拷贝命令,即可开始在当前路径下拷贝源代码库:
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u/
hg
命令执行完成后,执行 get_source.sh
脚本:
./get_source.sh
因为代码量较大,所以获取所有代码的时间可能稍长,注意不要关闭命令窗口。
方式二:从 Github
获取(非正式)
如果觉得上述源码获取方式比较麻烦,那么可以直接去https://github.com/unofficial-openjdk/openjdk 克隆一份,这是某个热心大佬整理的非官方库,代码应该和官方代码是差不多的。
特别说明
根据开源中国的消息,openJDK
的开发者有意向更换代码仓库,并且倾向于使用 Github
,据说可能会在今年(2019年)的3月份公布消息。(如果这样的话就太好了!!)
如果感兴趣的话,可以关注 openJDK
的相关邮件列表:
Call for Discussion: New Project: Skara – investigating source code management options for the JDK sources