首页 > 基础资料 博客日记

CentOS 7如何构建OpenJDK源码

2023-02-14 18:30:25基础资料围观2413

本文介绍了CentOS 7系统下构建OpenJDK源码,需要安装JDK1.7确保是Hotspot JDK,不能是其他的JDK。这个JDK作为Bootstrap JDK,所以这个jdk不能和要编译的jdk版本差异过大。

下面讲解一下构建OpenJDK源码步骤。


一、安装需要的软件


yum install -y mercurial
yum install -y ant ant-nodeps
yum install -y libX11* libX*
yum install -y libXi-devel libXtst-devel libXt-devel freetype* 
yum install -y alsa-lib-devel cups-devel
yum install -y gcc gcc-c++


二、下载要编译的OpenJDK


hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev
cd jdk8u-dev
chmod 755 get_source.sh 
./get_source.sh


三、编写自动编译脚本


在目录中新建一个build.sh文件,编写如下脚本

#! /bin/bash
#设置语言
export
#Bootstrap JDK的安装路径,必须设置
export ALT_BOOTDIR=/opt/jdk1.7.0_80
#允许自动下载依赖
export ALLOW_DOWNLOADING=true
#并行编译的线数,设置和cpu的数量一致即可
export HOTSPOT_BUILD_JOBS=2
export ALT_PARALLEL_COMPILE_JOBS=2
#比较本次build出来的映像与先前版本的差异,这对我们来说没有意义
export SKIP_COMPARE_IMAGES=true
#使用预编译头文件,不加这个编译会更慢一些
export USE_PRECOMPILED_HEADER=true
#指定要编译的内容
export BUILD_LANGTOOLS=true
export BUILD_HOTSPOT=true
export BUILD_JDK=true
export BUILD_JAXP=false
export BUILD_JAXWS=false
export BUILD_CORBA=false
#要编译的版本
#export SKIP_DEBUG_BUILD=false
#export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug
#可以避开javaws和浏览器Java插件之类的部分build
BUILD_DEPLOY=false
#设置成false就不会build出包装包,因为包装包里有些奇怪的依赖
#但是即使不build出它也已经能得到完整的JDK映像,所以还是别build它好了
BUILD_INSTALL=false
#编译结果存放的路径
export ALT_OUTPUTDIR=/opt/openjdk_8u172
#卸载环境变量,避免诡异的事情发生
unset JAVA_HOME
unset JRE_HOME
unset CLASSPATH
unset JAVA_OPTS

make 2>&1 | tee $ALT_OUTPUTDIR/build.log


四、进行编译


1、执行 configure

bash ./configure


2、执行 build 脚本

./build.sh


编译后的结果是 release 版本,需要可以调试的版本,可以执行以下命令(如果已经编译过了,需要删除 build 目录)


bash ./configure --with-target-bits=64 --with-boot-jdk=/opt/jdk1.7.0_80/ --with-debug-level=slowdebug --enable-debug-symbols ZIP_DEBUGINFO_FILES=0
make all ZIP_DEBUGINFO_FILES=0


执行编译完成后,找到 j2sdk_image 目录,进入 bin 目录,测试编译结果

java -version


标签:

相关文章

本站推荐

标签云