1、环境已经相关资源准备
很多人再使用Ubuntu来编译OpenJDK,当时我也尝试了一下,但是编译过程中遇到各种软件安装的问题,所有我使用的是CentOS7,在编译之前,需要准备相关的资料:
- JDK1.7源码链接:http://pan.baidu.com/s/1dFyCUYl 密码:ds8z
- JDK1.6安装包链接:http://pan.baidu.com/s/1o8MbmNS 密码:vp8j
注意:需要使用低版本的JDK编译高版本的openjdk
2、软件安装
1、yum install alsa-lib-devel
2、yum install cups-devel
3、yum install libX*
4、yum install gcc gcc-c++
5、yum search libc++
6、yum install libstdc++-static
7、yum -y install ant
3、解压源码,配置脚本
- 切换到 root 用户,我是将openjdk源码解压到 /opt 目录下,然后安装 jdk1.6 。
- 编写编译的脚本
vim ~/.bashrc
脚本内容入下(关于脚本可以参考《深入理解Java虚拟机规范》):
unset CLASSPATH //JAVA_HOME和CLASSPATH在编译前需要取消
unset JAVA_HOME
//设定语言选项
export LANG=C
//设置jdk1.6的路径
export ALT_BOOTDIR=/usr/java/jdk1.6.0_45
export ALT_JDK_IMPORT_PATH=/usr/java/jdk1.6.0_45
//允许自动下载
export ALLOW_DOWNLOADS=true
//并发线程数,和cpu内核数相同
export HOTSPOT_BUILD_JOBS=1
export ALT_PARALLEL_COMPILE_JOBS=1
export SKIP_COMPARE_IMAGES=false
//使用预编译头
export USE_PRECOMPILED_HEADER=true
//需要编译的内容
export BUILD_LANGTOOLS=true
export BUILD_JAXP=false
export BUILD_CORBA=false
export BUILD_JAXWS=false
export BUILD_HOTSPOT=true
export BUILD_JDK=true
//设置
BUILD_DEPLOY=false
BUILD_INSTALL=false
//编译的版本
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=false
export DEBUG_NAME=debug
//编译结果存放的路径
export ALT_OUTPUTDIR /home/holmes/openjdk/bulid
执行命令行:
source ~/.bashrc
在进入到 /opt/openjdk 目录下,执行make sanity 检查,如果没有问题,执行make all 编译openjdk。
4、编译问题解决
当时在编译的时候,遇到了下面问题:
Error: time is more than 10 years from present: 1120165200000
遇到该问题,需要修改下面文件:
jdk/src/share/classes/java/util/CurrencyData.properties
将里面得日期修改为10年之内就OK。
5、参考链接
CentOS7下编译openjdk:http://blog.csdn.net/zitong_ccnu/article/details/50149757
6、自我介绍
我是何勇,现在重庆猪八戒,多学学!!!
网友评论