系統(tǒng)環(huán)境:
14.04.1-Ubuntu
編譯目標:openjdk7u
操作步驟:
1. 安裝水銀
apt-get install mercurial
2. 下載openjdk7部分源碼
hg clone http://hg.openjdk.java.net/jdk7/jdk7
3. 下載openjdk7全部源碼
cd jdk7
sh get_source.sh
注意痒筒,這一步經(jīng)常會失敗超時,多試幾次茬贵,確保hotspot, langtools, corba, jaxws, jaxp, jdk. 這六個目錄文件都正常簿透。
4. 安裝openjdk-6-jdk作為bootstrap JDK
apt-get install openjdk-6-jdk
5. 安裝Certificate Authority File
apt-get install ca-certificates ca-certificates-java
6. 安裝x11
apt-get install libxrender-dev libxext-dev libxtst-dev
7. 安裝其他依賴
apt-get install libasound2-dev libcups2-dev libfreetype6-dev
4-7 合為一條命令:
apt-get install openjdk-6-jdk ca-certificates ca-certificates-java libxrender-dev libxext-dev libxtst-dev libasound2-dev libcups2-dev libfreetype6-dev
8. 設(shè)定環(huán)境變量和編譯腳本
#!/usr/bin/env bash
export LANG=C
# 編譯64位
export ARCH_DATA_MODEL=64
# 編譯目標名稱
export MILESTONE=test_build
# bootstrap jdk路徑,需要在path中配置
export ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk-amd64/
export ALLOW_DOWNLOADS=true
export HOTSPOT_BUILD_JOBS=4
export ALT_PARALLEL_COMPILE_JOBS=4
export SKIP_COMPARE_IMAGES=true
# 輸出路徑
export ALT_OUTPUTDIR=/home/yourusername/jvm/build
unset JAVA_HOME
unset CLASSPATH
make 2>&1 | tee $ALT_OUTPUTDIR/build.log
9. 編譯結(jié)果
#-- Build times ----------
Target all_product_build
Start 2019-08-29 18:01:24
End 2019-08-29 18:12:54
00:01:15 corba
00:03:29 hotspot
00:00:10 jaxp
00:00:13 jaxws
00:05:59 jdk
00:00:24 langtools
00:11:30 TOTAL-------------------------
make[1]: Leaving directory `/ppt/openjdk/jdkb2'