How to compile openjdk 7 in RHEL5

1. 为什么要编译openjdk的code?
因为从Eclipse调试JDK的代码时,方法中的局部变量不能显示,这样是因为编译JDK时,没有编译成debug版本。

2. RHEL5中自带的开发者JDK已经是debug版本了,所以可以直接使用。

例如:java-1.6.0-openjdk-devel-1.6.0.0-1.24.1.10.4.el5

3.
在Eclipse中如何使用其它版本的JDK,首先在preference中将编译好的JDK路径添加进去,然后修改工程中的JDK依赖关系,重新编译工程,debug到
JDK中,这时JDK代码中的局部变量就可以查看了

这里的方法是从 http://hg.openjdk.java.net/jdk7/build/raw-file/tip/README-
builds.html
来的。

下面开始具体的步骤:

1. 安装setuptools

install setuptools in windows/linux
1.1. download https://bitbucket.org/pypa/setuptools/raw/0.7.4/ez_setup.py
1.2. run it with python

2. 安装Mercurial

install Mercurial in linux:
2.1 easy_install -U mercurial

3. 下载openjdk的source

download open jdk 7 source

3.1 hg clone http://hg.openjdk.java.net/jdk7/jdk7 YourOpenJDK

3.2 cd YourOpenJDK

3.3 sh ./get_source.sh

4. 安装Ant和freetype

install ant 1.7
install freetype 2.3

4.1 从apache的网站上下载ant的zip包,解压到任意目录

4.2 从sourceforge上下载2.3版本的freetype的source包

使用下面的命令安装:

./configure && make && sudo -u root make install

5.设置环境变量

5.1 LANG和BOOTDIR

export LANG=C
export ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64

5.2 Ant

export ANT_HOME=/tmp/ant/apache-ant-1.7.1
export PATH=/tmp/ant/apache-ant-1.7.1/bin:$PATH

5.3 Freetype(这里是默认的安装路径)

export ALT_FREETYPE_HEADERS_PATH=/usr/local/include/
export ALT_FREETYPE_LIB_PATH=/usr/local/lib/

6. 检查一切完好

gmake sanity ARCH_DATA_MODEL=64

7. 编译

gmake

#make debug version
gmake ALLOW_DOWNLOADS=true fastdebug_build
gmake ALLOW_DOWNLOADS=true debug_build