Ubuntu 11.10下编译 OpenJDK 7


1.首先去 这里 http://download.java.net/openjdk/jdk7/ 下载OpenJDK7的源码zip包
 
2. 安装编译工具包
 如没安装aptitude,则先安装aptitude(sudo apt-get install aptitude)
 sudo aptitude build-dep openjdk-6

3.注意:Ubuntu系统的语言必须切换English系统设置->语言支持
4.修改hotspot/make/linux下的Makefile文件,注释掉以下内容,若不注释,会报错,然后exit 1退出编译:
  1. check_os_version:  
  2. #ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),)  
  3. #   $(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1;  
  4. #endif  
5.修改jdk/make/javax/sound/jsoundalsa/下的Makefile文件,将
LDFLAGS += -lasound
改成
EXTRA_LIBS += -lasound
否则编译出错

6. 准备编译脚本:buildjdk.sh,放在解压对openjdk源码根目录下
  1. #!/bin/bash  
  2.   
  3.   
  4. export LANG=C  
  5. export ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk  
  6. export ALLOW_DOWNLOADS=true  
  7. export USE_PRECOMPILED_HEADER=true  
  8. export SKIP_DEBUG_BUILD=false  
  9. export SKIP_FASTDEBUG_BUILD=true  
  10. export DEBUG_NAME=debug  
  11. unset CLASSPATH  
  12. unset JAVA_HOME           
  13.   
  14. make sanity  && make  
7.执行编译脚本,./buildjdk.sh
8. 编译完成,检查结果
  1. -- Build times ----------  
  2. Target debug_build  
  3. Start 2012-02-24 21:44:33  
  4. End   2012-02-24 22:40:32  
  5. 00:00:52 corba  
  6. 00:23:09 hotspot  
  7. 00:09:25 jaxp  
  8. 00:08:38 jaxws  
  9. 00:13:01 jdk  
  10. 00:00:54 langtools  
  11. 00:55:59 TOTAL  
  12. -------------------------  
  13. make[1]: Leaving directory `/home/nathan/study/openjdk'  
  14. nathan@ubuntu:~/study/openjdk$ build/linux-i586-debug/j2sdk-image/bin/java -version  
  15. openjdk version "1.7.0-internal-debug"  
  16. OpenJDK Runtime Environment (build 1.7.0-internal-debug-nathan_2012_02_24_20_17-b00)  
  17. OpenJDK Server VM (build 21.0-b17-jvmg, mixed mode)  

相关内容