【編譯openjdk學習筆記】

遇在晚秋發表於2019-03-28

centos7編譯openjdk、win10、netbeans、nfs遠端debug

參考連線附上

cashZhang27:CentOS 7編譯jdk7

雞哥cy:win10利用Netbeans遠端構建除錯OpenJDK

長蘑菇的木頭:win10安裝nfs伺服器並實現liunx訪問

環境

centos7

[root@localhost src]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
複製程式碼

win10

Microsoft Windows [版本 10.0.17763.379]
(c) 2018 Microsoft Corporation。保留所有權利。
複製程式碼

netbeans

NetBeans IDE 8.2 (Build 201609300101)
複製程式碼

nfs1.2.36

http://r.hanewin.net/nfs1236.exe
複製程式碼

centos上的操作步驟

依賴資源安裝

yum install alsa-lib-devel
yum install cups-devel
yum install libX*
yum install gcc gcc-c++
yum install freetype-devel
yum install libstdc++-static
# 只是編譯openjdk不需要安裝,使用nfs共享檔案遠端除錯
yum install nfs-utils
複製程式碼

openjdk

openjdk-7u6-fcs-src-b24-28_aug_2012.zip

unzip openjdk-7u6-fcs-src-b24-28_aug_2012.zip
複製程式碼

ant

apache-ant-1.9.14-bin.tar.gz

tar -zxvf apache-ant-1.9.14-bin.tar.gz
複製程式碼

bootstrap jdk

jdk-7u4-linux-x64.tar.gz

tar -zxvf jdk-7u4-linux-x64.tar.gz
複製程式碼

配置環境變數

vi /etc/profile

#set Java enviroment
export JAVA_HOME=/usr/local/src/jdk1.7.0_04
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:/usr/local/src/apache-ant-1.9.14/lib/ant-launcher.jar

#set Ant enviroment
ANT_HOME=/usr/local/src/apache-ant-1.9.14

export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$CLASSPATH:$JRE_HOME/bin:$PATH
複製程式碼

###編譯檢查

進入解壓後的openjdk目錄下執行命令:./build.sh

export LANG=C
export ALT_BOOTDIR=/usr/local/src/jdk1.7.0_04
export ALT_JDK_IMPORT_PATH=/usr/local/src/jdk1.7.0_04
export ALLOW_DOWNLOADS=true
export HOTSPOT_BUILD_JOBS=4
export ALT_PARALLEL_COMPILE_JOBS=4
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=/home/administrator/jvm/openjdk/build
unset JAVA_HOME
unset CLASSPATH

make sanity
#檢查輸出結果:Sanity check passed後解開下邊註釋執行編譯./build.sh
#make sanity && make 2>&1 | tee $ALT_OUTPUTDIR/build.log
複製程式碼

修改CurrencyData.properties

路徑為openjdk目錄下jdk/src/share/classes/java/util/CurrencyData.properties檔案,將此檔案中所有的時間改為10年以內即可

配置環境變數使用自己編譯的openjdk

vim /etc/profile
複製程式碼

修改JAVA_HOME

export JAVA_HOME=/home/administrator/jvm/openjdk/build/j2sdk-image
複製程式碼

如果不想編譯完整的openjdk只編譯HotSpot

在/home/administrator/jvm/openjdk/hotspot/make 目錄下建立build.sh指令碼

export LANG=C
export ALT_BOOTDIR=/usr/local/src/jdk1.7.0_04
export ALT_JDK_IMPORT_PATH=/usr/local/src/jdk1.7.0_04
export ALLOW_DOWNLOADS=true
export HOTSPOT_BUILD_JOBS=4
export ALT_PARALLEL_COMPILE_JOBS=4
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
# 指定編譯64位hotspot
export LP64=1
export GAMMADIR=/home/administrator/jvm/openjdk/hotspot
export ALT_OUTPUTDIR=/home/administrator/jvm/openjdk/hotspot/build
unset JAVA_HOME
unset CLASSPATH

make 2>&1 | tee $ALT_OUTPUTDIR/build.log
複製程式碼

執行./build.sh看到以下列印恭喜你成功了

java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b20)
OpenJDK 64-Bit Server VM (build 23.2-b09-internal-fastdebug, mixed mode)

 1. A1 B5 C8 D6 E3 F7 G2 H4 
 2. A1 B6 C8 D3 E7 F4 G2 H5 
 3. A1 B7 C4 D6 E8 F2 G5 H3 
 4. A1 B7 C5 D8 E2 F4 G6 H3 
 5. A2 B4 C6 D8 E3 F1 G7 H5 
 6. A2 B5 C7 D1 E3 F8 G6 H4 
 7. A2 B5 C7 D4 E1 F8 G6 H3 
 8. A2 B6 C1 D7 E4 F8 G3 H5
複製程式碼

常見錯誤核心版本過高,我安裝的centos7的核心版本是3.10沒有遇到此問題

# uname -r
3.10.0-862.el7.x86_64
複製程式碼

遇到的小夥伴可以修改SUPPORTED_OS_VERSION引數

vim openjdk/hotspot/make/linux/Makefile
複製程式碼
# We do not want people accidentally building on old systems (e.g. Linux 2.2.x,
# Solaris 2.5.1, 2.6).
# Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok.

SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%
複製程式碼

以上就完成了在虛擬機器的cenos7上編譯成功openjdk接下來配置windows10

windows上的操作步驟

安裝netbeans8.2

NetBeans IDE 8.2

安裝nfs

NFS Server 1.2.36

netbeans和nfs的配置參考地址

雞哥cy:win10利用Netbeans遠端構建除錯OpenJDK

長蘑菇的木頭:win10安裝nfs伺服器並實現liunx訪問

D盤新建資料夾D:\jvm設定共享,windows為nfs服務端、虛擬機器centos為客戶端掛載

【編譯openjdk學習筆記】

防火牆配置

開啟控制皮膚->系統和安全->Windows Defender 防火牆,點選左側邊欄"高階設定",進入高階安全windows防火牆設定介面,點選左側邊欄"入站規則",在右側邊欄點選"新建規則",如下圖所示

【編譯openjdk學習筆記】
【編譯openjdk學習筆記】

配置nfs

【編譯openjdk學習筆記】
【編譯openjdk學習筆記】

# 我在配置這裡的時候參考大佬的配置沒有成功,在客戶端在虛擬機器的centos上mount報錯
#d:\jvm -name:jvm -mapall:1000:1000 -exec 客戶端ip
# 去掉客戶端的ip後成功了
d:\jvm -name:jvm -mapall:1000:1000 -exec
複製程式碼

【編譯openjdk學習筆記】

在客戶端虛擬機器上掛載檔案

sudo mount -t nfs 192.168.0.205:/jvm /home/administrator/jvm/
複製程式碼

安裝配置netbeans 照著大佬的配置就行了

雞哥cy:win10利用Netbeans遠端構建除錯OpenJDK

忙活兩天終於成功啦

【編譯openjdk學習筆記】

大自然的搬運工,寫這個只是用來做個學習筆記,沒有原創的成分。遇到問題就各種百度,以上內容基本都是我貼出來的部落格中Copy過來的。

相關文章