在Centos7编译openjdk

1.环境准备

使用window10系统自带的虚拟机,可以虚拟出一台Centos7系统的电脑,JDK的编译过程,将在这台虚拟上完成。如图
(如何开启window10的虚拟机功能,以及虚拟出一台Linux系统的机器,可以在网上查找资料)。
在Centos7编译openjdk_第1张图片
在Centos7编译openjdk_第2张图片
需要在Centos7安装openjdk,查找并安装所需要的openjdk版本,因为要编译openjdk12,这里需要安装的版本为openjdk11。
在Centos7编译openjdk_第3张图片
在Centos7编译openjdk_第4张图片
在Centos7编译openjdk_第5张图片

2.openjdk源代码准备

获取源码有两种方式,一种是直接到http://hg.openjdk.java.net/jdk/jdk12/,这里下载的是jdk12,如需其它版本,可以选择所需版本进行下载。步骤如图。在Centos7编译openjdk_第6张图片
在Centos7编译openjdk_第7张图片
另一种获取源码的方法,是在linux系统使用指令进行下载,hg clone http://hg.openjdk.java.net/jdk/jdk12/,因为我安装的centos7还没有安装此指令的依赖包,先安装依赖包。步骤如图:
先查找hg指令所依赖的包。
在Centos7编译openjdk_第8张图片
在这里插入图片描述
查找到需要安装的软件包名后,安装。
在Centos7编译openjdk_第9张图片
执行指令,获取源码。
在这里插入图片描述
两种方式下载源码都很慢,终于还是通过第一种方式,下载到了源码。
在这里插入图片描述

3.编译准备

安装编译器
在Centos7编译openjdk_第10张图片
将下载到的源码上传到Centos7上,并解压缩。
在Centos7编译openjdk_第11张图片
解压指令
unzip jdk12-06222165c35f.zip

4.编译

进入到解压的目录,编译FastDebug版、仅含Server模式的HotSpot虚拟机,执行如下指令
bash configure --enable-debug --with-jvm-variants=server
如果出现如图的情况,就得先安装所需要的依赖。
在这里插入图片描述
安装依赖,执行提示的指令。
在Centos7编译openjdk_第12张图片
依赖安装完成后,再一次执行上边的configure指令,如果还是需要安装其它的所需依赖,继续安装其它依赖,然后再执行configure指令,直到所有依赖都安装完成后,正常执行configure指令。经过许多次依赖安装后,configure指令执行成功将有如图的信息。
在Centos7编译openjdk_第13张图片
configure命令承担了依赖项检查、参数配置和构建输出目录结构等多项职责,是检测编译环境是否准备充分。
在configure命令以及后面的make命令的执行过程中,会在“build/配置名称”目录下产生如下目录结构。
在Centos7编译openjdk_第14张图片
如果多次编译,或者目录结构成功产生后又再次修改了配置,必须先使用“make clean”和“make dist-clean”命令清理目录,才能确保新的配置生效。
在这里,已成功执行了configure命令,可以先执行“make clean”和“make dist-clean”命令,然后再执行一次configure命令,多观察执行前后的目录变化。
执行清除命令前,因为成功执行过一次configure命令了,所以在build目录下生成一个目录。
在这里插入图片描述
执行两个清除命令后,再一次查看build目录,可以看到build目录下为空。
再一次执行
bash configure --enable-debug --with-jvm-variants=server指令,可以看到build目录下重新生成一个目录。
在Centos7编译openjdk_第15张图片
接下来执行编译指令。
在Centos7编译openjdk_第16张图片
因为这里使用的虚拟内存只有1024MB。
在Centos7编译openjdk_第17张图片
所以编译整个jdk可能需要很长一段时间。在等了一个小时后,直接去睡觉了,第二天看到编译完成的信息,如图。
在Centos7编译openjdk_第18张图片
进入openjdk源码的“build/配置名称/jdk”目录下,就可以看到openjdk的完整编译结果了。
在Centos7编译openjdk_第19张图片

你可能感兴趣的:(java,linux,centos,jdk)