在领导面前夸下海口,说过年要看完《深入理解java虚拟机-jvm高级特性与最佳实践》 和《HotSpot实战》这两本书, 今天是上班最后一天, 也是过年学习的第一天, 打卡记录.

说实话, 这一块内容也确实比较难, 大家在实践过程中遇到什么问题,欢迎随时和小刀一起讨论

下载源码


源码下载地址: https://hg.openjdk.java.net/jdk-updates/jdk11u

直接选左边的zip下载压缩包

安装依赖


因为源码版本不同, 需要的依赖和步骤也不同, 所以强烈建议打开building.html来看一下

基本上是从building.html#boot-jdk-requirements这里开始准备一些基础条件,按上面的命令,把需要的依赖都安装好

必须要准备的:

至少低一个版本的jdk

这里我们的源码是jdk11, 原则上来说, 我们要用10做bootjdk,但是通过调试日志输出, 我们可以选10和11中的一个

进行Running Configure


这里为了调试, 我们选用了调试信息最多的, slowdebug, 然后添加了boot-jdk的参数,还有一个隐形的坑--disable-warnings-as-errors不然配置显示是成功的, make 的时候会因警告无法往下走

执行配置的命令:

bash configure --with-debug-level=slowdebug --with-boot-jdk=/Users/lixiang/soft/jdk-11.0.2.jdk/Contents/Home --disable-warnings-as-errors 

当输出以下内容时, 就是配置成功

make构建


我们使用 make images 来进行构建jdk镜像, 其他选项如,hotspot, docs,test-image 等可参考上述building.html文档

看到输出这个时, 就是构建完成

最后在build目录,可以看到自己构建的jdk

使用java -version 可以看到构建的版本信息

总结


随着jdk版本的升级,新版本的构建越来越容易,推荐使用MAC 或者linux系统来进行构建. Windows的我曾经试了好久,,一直有各种错,实在进行不下去了...