首页 > 基础资料 博客日记
CentOS 7如何构建OpenJDK源码
2023-02-14 18:30:25基础资料围观2818次
本文介绍了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
标签:
相关文章
最新发布
- springboot~3.x项目中使用集成测试
- Java测试类、工具类与JavaBean对比解析
- SpringBoot-日志
- springboot~http2的支持
- 解疑释惑 - 日志体系之 slf4j + logback 组合(一)
- Web server failed to start. Port 8080 was already in use. 端口被占用
- Springboot 项目配置多数据源
- 伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 05
- 剑指offer-23、搜索⼆叉树的后序遍历序列
- 一个表示金额的数字是 100000000L,这是多少米?