我的博客原文:全网最新最简单的 OpenJDK13 代码编译java
最近因写文章须要查看 JVM 源码,有时代码逻辑不是很清晰,找半天,趁国庆假期,抽空下载了 OpenJDK13 搭建了 JVM debug 环境,把操做记录写在这篇文章里,让有须要的朋友能够参考,少踩坑。设计模式
我是在 Ubuntu 18.04 下编译的,不是在 Windows,建议不在 Windows 下折腾,会遇到比在 Linux 环境下多得多的问题。若是你电脑也是 Windows,能够像我这样,安装个 VMware 虚拟机软件,在里面装个 Ubuntu 系统,在虚拟机里面玩,这 2 个软件在官网下载就行,固然若是懒得去找也能够在个人公众号后台回复: 虚拟机
获取 VMware 软件和 Ubuntu 18.04 镜像。bash
安装 Ubuntu 虚拟机就不在这篇文章说了,网上有相关的资料。网络
平时咱用的代码管理工具大多数是 Git,OpenJDK 并非,而是用 Mercurial 管理工具,因此咱们要安装它。经过下面命令安装。并发
sudo apt-get install mercurial
复制代码
安装完代码管理工具后,咱们就能够下载 OpenJDK13 的源码了,使用以下命令便可下载。这个过程根据网络情况,须要的时间不一,我下载花了十来分钟。异步
hg clone http://hg.openjdk.java.net/jdk/jdk13/
复制代码
嗯,我就是这样干等了十来分钟,由于具体的官方操做文档也在里面,没下载下来没法看,网上也找不到相关的 Ubuntu 18 编译 OpenJDK13 的文章,因此不知道具体要安装哪些依赖。如今你看到这篇文章,能够不用干等着了,接下来步骤 2 和 3 不依赖源代码,能够继续操做。工具
这一部分是查看了官方文档,作了总结,官方文档里面是按软件区分的,那样一个命令一个命令敲有点繁琐,就把它整合成一个命令,执行就完了,知足有些朋友想尽快编译完,少些多余的东西。ui
sudo apt-get install libfreetype6-dev libcups2-dev libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev libasound2-dev libffi-dev autoconf gcc clang libfontconfig1-dev
复制代码
想了解这些依赖软件是干吗用的,能够看看官方文档,文档的位置以下图。spa
这个在文档里面称为 Boot JDK,就是编译时须要上一个版本的 JDK 作为基础,通常是使用 N-1 版本,好比编译 OpenJDK8 就使用 JDK7 做为 Boot JDK,咱们这里是编译 OpenJDK13,因此使用的是 JDK12。也是执行下面命令就搞定。操作系统
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-12-jdk
复制代码
安装完能够经过 java -version
来验证一下是否成功安装。见到以下结果就妥妥的。
执行完上面步骤,那么恭喜你,如今就能够开始编译了。
咱们安装了上面那么多东西,须要来检查一下是否是已经安装完所须要的软件,经过下面命令来检查。
bash configure
复制代码
若是执行过程当中有异常,就根据异常和提示信息,安装所缺的软件就行。若是看到下面的结果,那么再一次恭喜你,全部依赖软件都准备好了。
最激动人心的时刻到来了,敲入下面的命令,开始编译吧。这个过程大概须要半个小时,耐心等候,能够稍做休息,喝杯 82 年的咖啡。
make images
复制代码
见证奇迹的图片。看到下图说明编译成功啦。
还须要再稳一点,验证编译后的 java 是否可用,经过下面的命令来验证。
./build/*/images/jdk/bin/java -version
复制代码
看下图,出现 "13-internal" 2019-09-17
字样,咱们编译出来的 JDK13 能够用啦。
这标题起得不过度吧,上面版本日期是 2019-09-17,还不到一个月,网上相关资料也没,就只有官方文档了(固然也是最好的资料)。跟着步骤走,不会丢
,为了验证这句话,还把上面的步骤在我快退休的笔记本上跑了一遍,妥妥的。
咱们这篇文章就讲了编译 OpenJDK13,接下来会再写一篇怎么搭建 Debug JVM 环境,能够关注公众号,期待下一篇。
推荐阅读
了解Java线程优先级,更要知道对应操做系统的优先级,否则会踩坑
后台回复『设计模式』能够获取《一故事一设计模式》电子书
以为文章有用帮忙转发&点赞,多谢朋友们!