OpenJDK8 原始碼編譯 運行 除錯
感謝小童的物件在學習期間給予極大的幫助和鼓勵,筆芯!
文章目錄
- OpenJDK8 原始碼編譯 運行 除錯
- 準備
- 配置Ubuntu
- 配置OpenJDK7
- 安裝 編譯OpenJDK8 所需依賴
- 編譯OpenJDK8
- 安裝Clion
- 運行除錯OpenJDK8專案
準備
- ubuntu 16.04
- OpenJDK7
- OpenJDK8 原始碼
- VM
- Clion
編譯參考OpenJDK8所下載的README-builds.html,
編譯OpenJDK8需要提前有8以前的Java環境,所以下載了OpenJDK7,原文Building JDK 8 requires use of a version of JDK 7 that is at Update 7 or newer. JDK 8 developers should not use JDK 8 as the boot JDK, to ensure that JDK 8 dependencies are not introduced into the parts of the system that are built with JDK 7.
配置Ubuntu
-
下載VM
https://my.vmware.com/cn/web/vmware/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/16_0 -
安裝VM
-
下載ubuntu
https://releases.ubuntu.com/16.04.7/ubuntu-16.04.7-desktop-amd64.iso -
創建ubuntu作業系統
-
更換ubuntu的源為阿里云的源





- 安裝編輯軟體
sudo apt-get install vim
配置OpenJDK7
sudo vim /etc/profile
#打開檔案后 添加以下陳述句
#OpenJDK7解壓后的檔案路徑
export JAVA_HOME=/home/ubuntu/jdk7
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
#退出檔案后 運行以下命令
source /etc/profile
#驗證是否配置成功
java -version

安裝 編譯OpenJDK8 所需依賴
- 解壓OpenJDK8原始碼
- 進入解壓目錄下
- 打開命令列
- 安裝以下依賴
sudo apt install \
libx11-dev \
libxext-dev \
libxrender-dev \
libxtst-dev \
libxt-dev \
libcups2-dev \
libfreetype6-dev \
libasound2-dev \
libfontconfig1-dev
5.檢查并生成組態檔
# 此命令為編譯jdk非debug模式
bash ./configure
# 若需要debug模式則需要執行以下命令
bash ./configure --with-target-bits=64 --with-debug-level=slowdebug --debug-configure
# 可查看help 查看相關引數
bash ./configure --help
并按照提示安裝所需的依賴sudo apt-get install ccache 安裝完后再檢查一遍

編譯OpenJDK8
- 檢查語言
#輸出語言,若不是C則改成C
echo $LANG
zh_CN.UTF-8
#修改命令:
export LANG=C
- 檢查JAVA_HOME
#輸出JAVA_HOME
echo $JAVA_HOME
#看下輸出,如果有值則需要unset JAVA_HOME
unset JAVA_HOME
- 開始編譯
sudo make CONF=linux-x86_64-normal-server-slowdebug
會出現以下問題

4. 問題解決方法
# hotspot/make/linux/Makefile 檔案 SUPPORTED_OS_VERSION 后面添加4%
SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%
# 重新編譯
sudo make CONF=linux-x86_64-normal-server-slowdebug
- 編譯成功

安裝Clion
- 下載并解壓安裝包并進入bin檔案夾
- 打開命令列
./clion.sh
- 根據提示安裝
- 安裝完畢
運行除錯OpenJDK8專案
- 用Clion選擇解壓的檔案打開專案



- 創建啟動應用–編譯階段





- 在根目錄下創建Test.java 并運行編譯生成Test.class

- 解壓除錯檔案
# 進入/openjdk/build/linux-x86_64-normal-server-slowdebug/jdk/lib/amd64/server
sudo unzip libjvm.diz
-
可在編譯階段除錯原始碼

-
創建啟動應用–運行階段
與編譯階段基本一致,以下是不同的地方

-
運行階段除錯方式與編譯階段一致
大功告成!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/265869.html
標籤:其他
