一、下载
下载步骤参考的官网,内容如下:
Source code
The jdk8u-dev forest for ongoing development can be cloned using this command:
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev;cd jdk8u-dev;sh get_source.sh
.The corresponding master forest jdk8u can be cloned using this command:
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u;cd jdk8u;sh get_source.sh
.In addition, the source code for the last release, 8u172, is available by cloning the 8u master forest : http://hg.openjdk.java.net/jdk8u/jdk8u and using the 'jdk8u172-b11' mercurial tag.
这里使用了一个类似于git的版本控制工具Mercurial,Ubuntu安装只需要使用如下命令:
sudo apt-get install Mercurial
安装完毕后,选择一个目录在终端内输入以下命令:
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u
该命令会把主目录clone下来,然后进入文件夹,输入:
sh get_source.sh
然后等待下载完毕,网络上很多人说这里下载很慢,但是笔者感觉还行,最多十几分钟的样子。
完成的文件夹如下所示(关注打钩的文件夹即可):
二、编译
编译之前需要配置一个称作BOOT_JDK的东西,其版本要比编译的版本低一级,即编译OpenJDK8,就需要安装JDK7作为环境(OpenJDK7或OracleJDK7均可),这里略去JDK7的安装。
JDK7安装完成后,在OpenJDK8源码根目录下执行命令:
#--with-boot-jdk后就是你的JDK7安装目录
sudo bash configure --with-boot-jdk=/home/iceberg/1Program/jdk1.7.0_80
中间会遇到各种库缺失的问题,不过在最后几行都会有提示你执行什么命令来安装的,照做即可
PS:这里有一个坑,有个提示是这样的
configure: error: Could not find all X11 headers
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
注意这里的x应该是小写的!
然后等待配置完成就行了
配置完成后再输入命令:
sudo make
就完事儿了