编译环境介绍

本次编译尝试在WSL2->下进行, 母机配置如下:
CPU:AMD Ryzen 9 7950X
RAM:32GB
OS:Windos11 64bit
WSL_OS:Ubuntu22.04LST

获取源代码

本次编译使用的源代码是openjdk12。通过官方源码仓库进行下载
image-20210702204112330
当然官方的源码仓库可能下载比较缓慢,我们可以通过Github进行下载。在Chrome插件或者油猴中,有很多Github加速下载插件,这些插件能够提供有效的CDN支持。当然如果用户懂得正确的上网姿势(魔法上网),这些方案都不是问题。
项目地址
image-20210702205710569

搭建编译环境

编译环境使用GCC。安装过程不过多赘述。

1
sudo apt install build-essential

image-20210702210315895
请务必仔细查阅编译文档doc/building.html
可以看到openjdk编译所需要的外部依赖库
image-20210702210931823
image-20210702211102787
整理如下
外部依赖库
安装方法
FreeType
sudo apt-get install libfreetype6-dev
CUPS
sudo apt-get install libcups2-dev
X11
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
ALSA
sudo apt-get install libasound2-dev
libffi
sudo apt-get install libffi-dev
根据要求,还需要Autoconf支持

1
sudo apt-get install autoconf

在编译JDK12时,我们需要一个前一个版本的JDK环境来编译源代码中使用Java编写的部分(Bootstrap JDK)。因为需要前一个版本的支持,所以在这里使用JDK11。

1
sudo apt-get install openjdk-11-jdk

编译

将jdk源代码放入纯英文径中。路径最好不要包含空格和汉字。
使用configure进行编译。
首先查询编译选项

1
bash configure --help

这里只使用最基础的编译

1
bash configure --enable-debug

根据报错进行调整。Configure命令承担了依赖项检查、参数配置、构建输出等多种任务。会对编译过程中出现的问题进行检查并给出建议。
image-20210702213739606
image-20210702220038754
编译成功后会收到提示,输出相关信息
image-20210702220236672
进入/build/配置名目录。使用make images命令进行编译
编译过程可能比较吃力。
image-20210702221858891