Ubuntu16 编译openJDK8u
1、得到openJDK8u
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev
cd jdk8u-dev
chmod 755 get_source.sh
./get_source.sh
2、得到bootstrap JDK 用来编译openjdk的java部分 下载oracle JDK1.8 一定要有!!!!
下载后解压到/usr/local/java中
3、安装依赖:
sudo apt-get install build-essential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif-dev ant
4、执行configure.sh脚本
bash ./configure --with-target-bits=64 --with-boot-jdk=/usr/local/java/ --with-debug-level=slowdebug --enable-debug-symbols ZIP_DEBUGINFO_FILES=0
5、设置环境变量(可有可无××)
#! /bin/bash
#设置语言
export LANG=C
#Bootstrap JDK的安装路径,必须设置
export ALT_BOOTDIR=/usr/local/java
#允许自动下载依赖
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=/openjdk8u(自己随意定义)
#卸载环境变量,避免诡异的事情发生
unset JAVA_HOME
unset JRE_HOME
unset CLASSPATH
unset JAVA_OPTS
make 2>&1 | tee $ALT_OUTPUTDIR/build.log
注意: export ALT_BOOTDIR=/usr/local/java 一定要用Oracle JDK的解压路径
可以将这个配置文件写到/etc/profile.d中 sudo vim /etc/profile.d/openjdk.sh 写完后 source /etc/profile就可以完成配置
6、make all
进行编译
7、编译完成的文件可能不在ALT_OUTPUTDIR=/opendjdk8u(很奇怪),这时候去jdk8u-dev中的build里去找 可能是release,fastdebug,slowdebug,看–with-debug-level=slowdebug 的定义
总结:
编译openjdk7u不行,出现ant版本低于1.7.1无法解决,重新安装ant(apt-get 或 官网下载安装),配置ant路径都不行 放弃
编译openjdk8u,开始忘记下载Bootstrap JDK# 欢迎使用Markdown编辑器