天天看点

Linux下编译OpenJdk实战

首先:

从开始着手编译HotSpot到现在编译成功一个月了,虽然不是天天在捣鼓这东西,但是至少也3*24个小时了吧。所以在这里我准备总结下经验,供日后的自己以及大家参考借鉴。
  • 准备工作

    环境:Linux(我用的Ubuntu)(阿里开源镜像:http://mirrors.aliyun.com/ )

    材料:OpenJDK6 (进入Ubuntu系统通过版本工具下载吧,用非官方的怕会纠结)

    工具:Vmware (百度吧)

  • Ubuntu准备

    之所以会用那么多时间,主要还是环境的问题。

    直接说我 遇到的问题吧。

    1.Ubuntu安装

    安装的时候一定要耐心。

    2.Ubuntu安装后 apt-get 工具使用

    这个特别纠结。如果你遇到Ubuntu后apt-get install、update等命令老是不入预期执行结果的时候。

    你可以参这篇文章http://www.cnblogs.com/lyon2014/p/4715379.html。(靠谱)

    3.更新源

    sudo apt-get update 更新源

    sudo apt-get upgrade 更新已安装的包

  • 开始编译HotSpot
//1.安装编译所需依赖
sudo apt-get install build-essential gawk m4 openjdk--jdk
libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev
x11proto-print-dev binutils libmotif3 libmotif-dev ant

//2.下载OpenJdk
//a.通过版本管理工具下载(推荐)
//主要是怕从别的源下载的不知道会不会出现不可预见的错误。
//安装版本工具Mrcurial
sudo apt-get install mrcural
//下载openjdk
hg clone http://hg.openjdk.java.net/jdk7u/jdk7u-dev
cd jdk7u-dev
chmod  get_source.sh
./get_source.sh
(时间会有点久)

编译前准备
//a.删除hotspot/make/linux/Makefile中所有的test_gamma ( 即删掉所有的&& ./test_gamma)
//b.将CurrencyData.properties内的时间改为10年内
//谢谢这位博主的帖子:http://www.cnblogs.com/zyx1314/p/5638596.html

编译开始:
a.编写脚本:
-----------------------------------------------------------------------------
export LANG=C

#编译openjdk7所需要的jdk目录,注意jdk的版本
#试过jdk1.8和1.7的其他版本,在运行时就出现bug
export ALT_BOOTDIR=/home/foreverenjoy/Program/jdk1_04

export BUILD_LANGTOOLS=true
export BUILD_JAXP=false
export BUILD_JAXWS=false
export BUILD_CORBA=false
export BUILD_HOTSPOT=true
export BUILD_JDK=true

export ALLOW_DOWNLOADS=true
export USE_PRECOMPILED_HEADER=true
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug

unset CLASSPATH
unset JAVA_HOME

make
------------------------------------------------------------
b.检查设置
make sanity

c.执行脚本
sh xxxx.sh

执行成功
#-- Build times ----------
Target debug_build
Start -- ::
End   -- ::
:: hotspot
:: jdk
:: langtools
:: TOTAL
-------------------------