Ubuntu編譯JDK8

什么是編譯?

?把一個源程序翻譯成目標程序的工作過程。

什么是編譯JDK

JDK中包含著JAVA的運行環境(JVM+Java系統類庫)和JAVA工具。

JVM 是由C語言寫成的,類庫和JAVA工具包含著Java代碼 ,eg: JavaC。

編譯JVM就是把c語言編譯成匯編語言,編譯Java 就是把Java語言編譯成字節碼。

編譯JDK需要什么?

?1,JDK的源代碼 。

2,編譯工具: C語言的編譯器和Java的編譯器。

獲取源代碼

?方法之一:

?Mercurial代碼版本管理工具從Repository中直接取得源碼?

sudohg clone http://hg.openjdk.java.net/java8u/jdk8060 jdk8u60

cd jdk8u60sudoshget_source.sh

命令的作用,類似與 clone倉庫,然后 pull

擴展:hg 使用 教程(非常值得一看)

如果沒有gh命令,需要安裝

$ sudo apt-get install python

$ sudo apt-get install python-all-dev

$ sudo apt-get install python-setuptools

$ sudo easy_install -U mercurial

準備編譯工具:

Bootstrap JDK

sudoadd-apt-repository ppa:openjdk-r/ppa

sudoapt-get update

sudoapt-getinstallopenjdk-7-jdk

C編譯工具

sudo apt-get install libasound-dev libcups2-dev build-essential

sudo apt-get install libxt-dev

sudo apt-get install libxtst-dev

編譯

1.??????sudo bash ./configure

2.??????sudo make all

活著直接運行,提示缺少什么,就通過apt-get 安裝什么

1.??????sudo bash ./configure

2.??????sudo make all

mark命令可以配置編譯參數,再次不進行贅述。

JDK的代碼結構

在JVM內部使用的是oop-klass 模型存儲的類對象

Klass?

使用Eclipse調試

1: 搭建Eclipse C++開發環境ubuntu下安裝eclipse IDE for C/C++ developers

2:導入項目

方法一:


方法二:

~進入Eclipse, ? ?選擇導入import工程 ?-> C/C++ -> Existing Code as Makefile Project ? -> ?單擊 Next ? -> 進入工程配置界面

? ? ? 在界面中:

? ? ? ? ? ? ?Project Name設為hotspot ?這個可以自己選擇

? ? ? ? ? ? ?Existing Code Location是/home/haogrgr/opt/myopenjdk/hotspot

? ? ? ? ? ? ?Toolchain那里選Linux GCC,然后按Finish.?

? ? ? ~把/hotspot/src目錄加入源碼索引方便代碼搜索, ? ?右鍵hotspot工程 ?-> properties -> C/C++ General -> Paths and Symbols -> Source Location選項卡?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->?選擇Add Folder 吧 hotspot/src目錄加入

? ? ? ~設置啟動類, ? ?右鍵工程 -> Debug As -> Debug Configurations -> 右鍵左邊的C/C++ Application -> New -> 進入Main選項卡

? ? ? ?在選項卡中:

? ? ? ? ? ? ??C/C++ Application ? ? 選擇 ??/home/haogrgr/opt/myopenjdk/build/linux-x86_64-normal-server-slowdebug/jdk/bin/java

? ? ? ? ? ? ??因為我們這里不再eclipse里面編譯,所以這里選上 Disable auto build

然后切換到Arguments選項卡, 輸入Java的參數, 我們這里運行上面的Main類, 于是這里填上Main ? 也就是我們要執行的Java程序

? ? ? ?然后切換到Environment選項卡, 添加變量

? ? ? ? ? ? ? LD_LIBRARY_PATH=/home/haogrgr/opt/myopenjdk/build/linux-x86_64-normal-server-slowdebug/hotspot/linux_amd64_compiler2/debug

JAVA_HOME=/home/haogrgr/opt/myopenjdk/build/linux-x86_64-normal-server-slowdebug/jdk/

CLASSPATH=.:/home/haogrgr/opt/myopenjdk/build/linux-x86_64-normal-server-slowdebug/jdk/bin ? ? ? ?(因為我的Main類在/bin目錄下)

? ? ? ?3)點擊下面的Apply保存

? ? ? ?4)在eclipse中找到thread.cpp, 在219行打個斷點

? ? ? ?5)Debug運行上面配置的Debug, 可以看到順利調到了斷點

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。