Centos下编译JDK

扫码查看

因为OpenJDK是开源的,这里使用openJDK进行编译联系

环境要求


  • Centos6.7 64位
  • openjdk-7u40-fcs-src-b43-26_aug_2013.zip
  • bootstrap JDK:  jdk1.6.0_38

因为我们是编译,所以环境的话可以根据自己的实际情况进行调整,JDK的源码包可以去这个网站进行下载https://jdk7.java.net/source.html

boostrap JDK:辅助JDK,意思是我们要编译一个新的JDK时需要别的JDK来辅助完成,就像点火需要打火机一样。

编译前的准备


因为要进行编译所以需要安装相应的编译工具

  • 安装gcc、gcc-c++

  yum install -y gcc gcc-c++

  • 安装cups-devel (unix打印系统)

  yum install -y cups-devel  

  • 安装alsa-lib-devel

  yum install -y alsa-lib-devel

  • 安装X图形库

  yum install -y libXrender libXrender-devel libXi-devel libXt-devel libXtst-devel

  • 安装freetype字体库

  yum install -y freetype freetype-devel

  • 安装bootstrap JDK

    yum install -y java-1.6.0-openjdk java-1.6.0-openjdk-devel

  • 安装ant

  yum install -y ant ant-nodeps

设置环境变量


编译JDK时不同通过读取配置文件来看用户做了那些定制,而是用过读取当前shell的环境变量来看设置的。在设置环境变量时可以参考以下脚本

因为我们是要研究java虚拟机的所以这里开启DEBUG模式

#!/bin/bash

#clear settings if you have ever setup
unset CLASSPAHT
unset JAVA_HOME #select language, required
export LANG=C #bootsrap JDK path installed, required
export ALT_BOOTDIR=/usr/local/jdk1..0_79 #setup freetype
export ALT_FREETYPE_LIB_PATH=/usr/local/lib
export ALT_FREETYPE_HEADERS_PATH=/usr/local/include
#setup ant path
export ANT_HOME=/root/apache-ant-1.9. #dowload dependencies automatically
export ALLOW_DOWNLOADS=ture #setup number of compiled threads same to cpus
export HOTSPOT_BUILD_JOBS=
export ALT_PARALLEL_COMPILE_JOBS= export SKIP_COMPARE_IMAGES=true export USE_PRECOMPILED_HEADER=true #setup what you want to compile
export BUILD_LANGTOOLS=true
#export BUILD_JAXP=false
#export BUILD_JAXWS=false
#export BUILD_CORBA=false
export BUILD_HOTSPOT=true
export BUILD_JDK=true #setup arch= if your cpu is or arch=
export ARCH_DATA_MODEL= #setup version
#export SKIP_DEBUG_BUILD=false
#export SKIP_FASTDEBUG_BUILD=true
#export DEBUG_NAME=debug BUILD_DEPLOY=false #cancel build install package
BUILD_INSTALL=false #setup output DIR
export ALT_OUTPUTDIR=/usr/local/jdk7-dev/build

注意:在执行脚本时使用source命令执行 source setenv.sh

编译


环境检查

当我们设置好环境变量后如果看我们的设置是否正确

进入源码的根目录,执行make sanity,如果结果如下则表示环境设置成功

Centos下编译JDK-LMLPHP

编译

在源码的根目录执行make all就可以进行编译了

04-25 00:35
查看更多