前言
学习《深入理解JAVA虚拟机—JVM高级特性与最佳实践》(周志明,第二版),作者在开篇第一章作了一些介绍后就提出:
想要一探JDK内部的实现机制,最便捷的路径之一就是自己编译一套JDK,通过阅读和跟踪调试JDK源码去了解Java技术体系的原型。虽然门槛会高一点,但肯定比阅读各种书籍、文章更加贴近本质。另外,JDK中的很多底层方法都是本地化(Native)的,需要跟踪这些方法的运作或对JDK进行Hack的时候,都需要自己编译一套JDK。
看后激起了自己些许兴趣、况且“纸上得来终觉浅,绝知此事要躬行”,想更深刻的认识jvm,还得自己亲自去研究一番。于是利用业余时间自己编译一套jdk,现将编译过程分享如下。
编译前注意问题
编译openjdk时,需要提供一个启动jdk(即编译Java的JDK(也称为Bootstrap JDK)),这里我用得是JDK 1.8 ,Bootstrap JDK需为当前编译的openjdk的上一个版本。例如这里编译的openjdk8,就要用>=jdk7作为启动jdk;
环境、工具的准备
OS:CentOS 7 64bit
OpenJDK:openjdk-8u40
Bootstrap JDK:jdk-1.8
依赖准备:<