首页 > 基础资料 博客日记
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
标签: