OpenJdk7編譯

根據《深刻理解Java虛擬機》一書,編譯java虛擬機源碼java

系統環境:centos7linux

編譯jdk版本:jdk7u-devc++

本地java環境:jdk-7u40apache

ant版本爲:1.8.2centos

 

1.安裝相關依賴oracle

yum install freetype-devel
yum install alsa-lib-devel
yum install cups-devel
yum install libX*
yum install gcc gcc-c++
yum install libstdc++-staticui

ant手動安裝centos7

wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.8.2-bin.tar.gzspa

tar zxvf apache-ant-1.8.2-bin.tar.gz .net

ln -s /work/install/apache-ant-1.8.2/bin/ant /usr/bin/ant (應該是這步很重要)

 

本地java環境:jdk-7u40

下載地址:https://download.oracle.com/otn/java/jdk/7u40-b43/jdk-7u40-linux-x64.tar.gz

 

OpenJdk7源碼獲取:

yum install mercurial

hg clone http://hg.openjdk.java.net/jdk7u/jdk7u-dev

 

2.修改環境變量

vi /ect/profile

 

3.編寫構建OpenJdk7腳本

[root@dev openjdk]# vi build.sh 

export LANG=C
export ALT_BOOTDIR=/work/install/jdk1.7
export ALT_JDK_IMPORT_PATH=/work/install/jdk1.7
export ALLOW_DOWNLOADS=true
export HOTSPOT_BUILD_JOBS=1
export ANT_HOME=/work/install/apache-ant-1.8.2
export ANT_VERSION=1.8.2
export ALT_PARALLEL_COMPILE_JOBS=1
export SKIP_COMPARE_IMAGES=true
export USE_PRECOMPILED_HEADER=true
export BUILD_LANGTOOLS=true
#export BUILD_JAXP=false
export BUILD_JAXWS=false
#export BUILD_CORBA=false
export BUILD_HOTSPOT=true
export BUILD_JDK=true
export DISABLE_HOTSPOT_OS_VERSION_CHECK=ok
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug
BUILD_DEPLOY=false
BUILD_INSTALL=false
export ALT_OUTPUTDIR=/work/install/jdk1.7_build
unset JAVA_HOME
unset CLASSPATH
unset LD_LIBRARY_PATH
make sanity

make sanity && make 2>&1 | tee $ALT_OUTPUTDIR/build.log

 

4.最終經歷千辛萬苦OpenJdk7編譯完成

 

坑1:本地嘗試手動安裝多個版本的ant,確認指定編譯的ant版本無誤。仍是報下圖錯誤:

坑2:手動安裝ant,make sanity驗證不經過。網上說經過yum install ant,就ok。可是後續卻報找不到Launcher主類錯誤。強制在環境變量中配置的該類路徑仍然,沒法生效。一直卡ant編譯這個問題上,後續看到別人編譯要創建ant軟件,才最終解決該問題!!!ln -s /work/install/apache-ant-1.8.2/bin/ant /usr/bin/ant

找不到或沒法加載主類 org.apache.tools.ant.launch.Launcher

坑3 使用centos 的ant版本1.7.1會報以下錯誤

相關文章
相關標籤/搜索