最近在看《深入了解Java虛拟機》,本來想按照書上的内容在win7上編譯一把openjdk,結果用了一天也沒有make sanity成功,更别說make了。
涉及到編譯的東西就沒有簡單,build文檔一堆一堆的。
硬着頭皮來吧,win7下沒有成功,轉向熟悉的fedora,不過fedora下編譯也是一堆錯誤,不具體描述錯誤了,根據網上的總結,以下是編譯流程:
一、
yum install git-core mercurial zip bzip2 unzip tar
yum install autoconf ccache make gcc gcc-c++ libstdc++-devel
yum install alsa-lib-devellibX11-devel libXext-devel libXt-devel libXrender-devel libXtst-devel libXi-devel libjpeg-devel giflib-devel freetype-devel
yum install curl rpm-build gpg
yum install java-1.6.0-openjdk-devel
yum install ant ant-*
yum install libstdc++-static
二、
下載下傳cups-1.6.1-source.tar.bz2源碼,把解壓後的目錄下的cups檔案夾copy到/usr/include/下
三、
export LANG=C
export ALT_BOOTDIR=/usr/lib/jvm/java-openjdk
export ALLOW_DOWNLOADS=true
export USE_PRECOMPILED_HEADER=true
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug
unset CLASSPATH
unset JAVA_HOME
四、
注釋掉
check_os_version:
#ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),)
# $(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1;
#endif
五、
進入你下載下傳的openjdk7解壓後的檔案夾,運作java/make/jdk_generic_profile.sh這個腳本
六、
make sanity
看到sanity check pass
七、
make ALLOW_DOWNLOADS=true DISABLE_HOTSPOT_OS_VERSION_CHECK=ok (最好加上這兩個參數)
成功編譯
八、
進入build/linux-i586-devel/bin/
./java -version
終于可以看到openjdk7了
總之,各種問題出現時,看文檔,搜google找到解決方式。
弄了一天半的時間終于弄好了,沒有白費時間