JVM之CentOS7编译openjdk1.7

1、环境已经相关资源准备

很多人再使用Ubuntu来编译OpenJDK,当时我也尝试了一下,但是编译过程中遇到各种软件安装的问题,所有我使用的是CentOS7,在编译之前,需要准备相关的资料:

  1. JDK1.7源码链接:http://pan.baidu.com/s/1dFyCUYl 密码:ds8z
  2. 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、解压源码,配置脚本

  1. 切换到 root 用户,我是将openjdk源码解压到 /opt 目录下,然后安装 jdk1.6 。
  2. 编写编译的脚本

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、自我介绍

我是何勇,现在重庆猪八戒,多学学!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 编译前准备 1. 下载openjdk。 官方建议是使用Mercurial来下载代码,Mercurial是一款免费的...
    山间听雨者阅读 1,896评论 0 0
  • 由于各Linux开发厂商的不同,因此不同开发厂商的Linux版本操作细节也不一样,今天就来说一下CentOS下JD...
    JerichoPH阅读 724评论 0 4
  • 最近准备阅读JVM源码,打算在本机编译一个Debug版本的JDK,鉴于工作中主要使用JDK7,因此选择OpenJd...
    allanYan阅读 1,470评论 3 0
  • 由于各Linux开发厂商的不同,因此不同开发厂商的Linux版本操作细节也不一样,今天就来说一下CentOS下JD...
    imbird阅读 744评论 0 1
  • 那两幅别人送的画那么难看,画面五颜六色,笔触粗制滥造,挂在墙上粗俗刺眼。但是他却偏要认为那是艺术,当小K把那两幅大...
    若水Dewlight阅读 314评论 0 0