1. 程式人生 > >CentOS7手動編譯OpenJDK

CentOS7手動編譯OpenJDK

1.首先下載一個OpenJDK的zip包,URL路徑為:
http://hg.openjdk.java.net/jdk7/jdk7/jdk/
挺不顯眼的;左側有個zip,點一下就會下載下來
2.在CentOS系統上安裝
yum -y install gcc gcc-c++ alsa-lib alsa-lib-devel libXrender libXrender-devel libXi-devel libXt-devel libXtst-devel cups cups-devel

3.配置環境變數(vi ~/.bashrc)

unset CLASSPATH
unset JAVA_HOME

export LANG=C
export ALT_BOOTDIR=/usr/lib/jvm/java-1.7.0-openjdk
export ALT_JDK_IMPORT_PATH=/usr/lib/jvm/java-1.7.0-openjdk
export ALT_HOTSPOT_IMPORT_PATH=/usr/lib/jvm/java-1.7.0-openjdk
export ALT_HOTSPOT_CLIENT_PATH=/usr/lib/jvm/java-1.7.0-openjdk/jre/lib/amd64/client
export ALT_HOTSPOT_SERVER_PATH=/usr/lib/jvm/java-1.7.0-openjdk/jre/lib/amd64/server
export ANT_HOME=/usr/share/ant
export ALT_FREETYPE_HEADERS_PATH=/usr/include/freetype2
export ALT_FREETYPE_LIB_PATH=/usr/lib64
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=false
export DEBUG_NAME=debug

source ~/.bashrc

4.解壓縮檔案,cd到make目錄

make sanity進行檢查

make all進行編譯

期間遇到的問題:

1.不識別'-mimpure-text'引數
錯誤資訊:
 
gcc: error: unrecognized command line option '-mimpure-text'
 
make[5]: *** [/openjdk/build/linux-amd64/../linux-amd64-debug/lib/amd64/libverify.so] Error 1
 
解決辦法:
gcc版本問題,這個命令在本機所用的4.7.2版的gcc中已經去除,既然不能降低gcc版本(本機ubuntu12.10核心用4.7.2版gcc編譯),那

就在 【解壓縮目錄】/make/common/shared/Compiler-gcc.gmk 中去掉 -mimpure-text 命令

2.time is more than 10 years from present: 1136059200000

通過修改【解壓縮目錄】/src/share/classes/java/util/CurrencyData.properties檔案, 今年是2016年,把小於2006年的都改成2006年之前

3.cannot find -lstdc++

sudo yum install glibc-static libstdc++-static

編譯完成後就可以用build下的JDK了。

配置環境變數:

export JAVA_HOME=/home/pijing/software/jdk-9b8c96f96a0f/build/linux-amd64/
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib

最後大功告成,可以用自己編譯的JDK了: