centos 7 环境编译 openJDK 8 JVM 源码

centos 7 环境编译 openJDK 8 JVM 源码

centos 7 系统

官方镜像下载列表:https://www.centos.org/download/mirrors/

笔者下载的是 CentOS-7-x86_64-DVD-2009.iso,下载地址:http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

centos 7 安装至 VMware 教程可参见笔者的博文:虚拟机安装 centos 7 系统

openJDK 8 源码包

openJDK 源码全部使用 Mercurial 管理,网址为:https://hg.openjdk.java.net/

选择 jdk8u

部署文档:

从上述图片中可以看到并没有源码,需要讲该项目下载下来,并执行 get_source.sh 文件。笔者尝试了多次,均不能成功下载源码。建议使用如下方式下载,访问:https://jdk.java.net/

笔者下载地址:https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-src-b04-14_jan_2020.zip

JDK 1.7 安装包

官方要求编译 jdk8 源码需要使用到 jdk7,因此需要下载 jdk7:

官方地址:https://www.oracle.com/java/technologies/javase/javase7-archive-downloads.html

镜像地址:https://mirrors.huaweicloud.com/java/jdk/

笔者下载的版本为:https://mirrors.huaweicloud.com/java/jdk/7u80-b15/

编译环境

将上述下载好的:openJDK 8 源码包(openjdk-8u41-src-b04-14_jan_2020.zip)和 JDK 1.7 安装包(jdk-7u80-linux-x64.tar.gz)上传至 centos 系统。

笔者在系统根目录下创建了 /data 文件目录,上述俩个文件均上传至此目录,后续操作均在此目录下完成。

由于 centos 是最小安装,没有相关 unzip 解压工具,执行如下命令安装 unzip 工具:

1
2
> yum install -y unzip
>

执行如下命令,将上述俩个压缩包进行解压:

1
2
tar -zxvf /data/jdk-7u80-linux-x64.tar.gz
unzip /data/openjdk-8u41-src-b04-14_jan_2020.zip

得到/data/jdk1.7.0_80文件目录和/data/openjdk文件目录:

安装依赖工具

使用 yum 包管理器安装下述相关工具:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装 c 语言开发相关编译器及调试器
yum install -y gcc
yum install -y gcc-c++
yum install -y gdb

# 安装编译 JVM 相关依赖
yum install -y cups
yum install -y cups-devel
yum groupinstall -y "Development Tools"
yum install -y libXtst-devel libXt-devel libXrender-devel
yum install -y freetype
yum install -y freetype-devel
yum install -y alsa-lib-devel
yum install -y fontconfig-devel

进入/data/openjdk 文件目录、设置 configure 为可执行文件,再执行预编译:

1
2
3
4
5
cd /data/openjdk

chmod +x ./configure

./configure --with-boot-jdk=/data/jdk1.7.0_80/ --with-target-bits=64 --with-debug-level=release

参数含义:

–with-boot-jdk-jvmargs:指定 boot-jdk 目录

–with-target-bits:系统的位数:32 或者 64

–with-debug-level:可选择:release, fastdebug, or slowdebug

上述命令执行成功,会提示如下信息:

上述步骤完成之后,使用 make 工具编译 JVM:

1
make all

编译预计半小时,其中出现警告不需要处理,直到出现如下信息表示编译成功:

自己编译好的 JDK 就在/data/openjdk/build/linux-x86_64-normal-server-release/jdk目录下:

查看 jdk 版本:

1
/data/openjdk/build/linux-x86_64-normal-server-release/jdk/bin/java -version

从版本信息中可以看到自已编译的版本信息:

updated updated 2021-09-10 2021-09-10
本文结束感谢阅读

本文标题:centos 7 环境编译 openJDK 8 JVM 源码

本文作者:木鲸鱼

微信公号:木鲸鱼 | woodwhales

原始链接:https://woodwhales.cn/2021/09/10/080/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%