一、为什么要自己编译JDK源码
想要窥探Java虚拟机内部的实现原理,最直接的一条路径就是编译一套自己的JDK,通过阅读和 跟踪调试JDK源码来了解Java技术体系的运作。了解技术的本质,提高自己的职场竞争力
二、openjdk和jdk的的联系区别
从java发展史中我们知道,openjdk是sun公司在2006年年末把Java开源而形成的项目,,例如OracleJDK、Oracle OpenJDK、AdoptOpenJDK、Azul Zulu、SAP SapMachine、Amazon Corretto、IcedTea、UltraViolet等 都是从OpenJDK源码衍生出的发行版,两者共用了绝大部分相同的代码,所以我们编译的OpenJDK,基本上可以认 为性能、功能和执行逻辑上都和官方的OracleJDK是一致的。
三、系統需求
查阅了相关资料,了解到在windows下编译是件很痛苦的过程,所以选择了虚拟机安装。
在VMware® Workstation 15 Pro中安装Ubuntu 18.04 LTS,。在官方 文档上要求编译OpenJDK至少需要2~4GB的内存空间(CPU核心数越多,需要的内存越大),而且 至少要6~8GB的空闲磁盘空间,由于本人电脑配置比较低,只分配了4g内存,1核心数,40Gb的硬盘空间
四、获取OpenJDK源码
获取OpenJDK源码有两种方式。一是通过Mercurial代码版本管理工具从Repository中直接取得源码(Repository地址:https://hg.openjdk.java.net/jdk/jdk12),这种方式因为仓库没有国内的CDN节点,访问速度实在是太慢,这里就不介绍了。
我们采取第二种方式,即直接在仓库中打包出源码压 缩包,再进行下载。
对系统环境的最后一点建议是,所有的文件,包括源码和依赖项目,都不要放在包含中文的目录 里面,这样做不是一定会产生不可解决的问题ÿ