美文网首页
Ubuntu 14.04 編譯 OpenJDK8—基於confi

Ubuntu 14.04 編譯 OpenJDK8—基於confi

作者: 小小帽2010 | 来源:发表于2017-10-22 22:21 被阅读43次

    相比windows下編譯openjdk8,linux下的坑並不少,這裡為了方便選擇了Ubuntu 14.04 64位元的作業系統,基本的linux命令操作一筆帶過,有疑問可自行搜索。(別選16.04,問題比較多:make降級、gcc版本高、libfreetype問題等)

    1. 不用說,先搭環境,建立虛擬機。安裝完之後,做以下操作:

    1). 把當前登入帳戶加入sudoer.

    2). 添加國內apt-source mirror:在寫此文時,阿里雲鏡像有些問題,我用的是網易。

    3). sudo apt-get update

    4). sudo apt-get install openssh-server vim openjdk-7-jdk g++

    5). 安裝完openssh-server可用putty登入,此步可選。


    2. 安裝依賴庫,並編譯

    1). sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libfreetype6-dev libcups2-dev libasound2-dev

    2). 把openjdk源代碼解壓,我下載的是"openjdk-8-src-b132-03_mar_2014",可自行搜索或者去github下載。

    3). 進入openjdk目錄,chmod +x ./configure

    4.) ./configure --with-target-bits=64 --with-debug-level=slowdebug

    5). 成功後,為下圖所示。

    After configure

    6). 修改:vim ./hotspot/make/linux/Makefile 228行,添加4%,使其支持4.x內核。

    hotspot-only makefile

    7). make all ZIP_DEBUGINFO_FILES=0 JOBS=16 ( JOBS參數 根據虛擬機不同配置而設置)

    vmware ubuntu 14.04

    8). 編譯成功如下圖:

    build done

    3. 修改hotspot啟動腳本

    1). cd ./build/linux-x86_64-normal-server-slowdebug/hotspot/linux_amd64_compiler2/debug,從名字可見,JDK8默認的是C2編譯,此編譯在啟動時會做一些分析再去優化:逃逸分析、棧上分配等。

    2). 修改hotspot,其實是一個shell 腳本。由於目錄過長,可執行export PS1="[\u@\h \W]\$"。找到102行,改為對應的JDK目錄。

    hotspot shell

    3). 找到170行,把break JNI_CreateJavaVM改為break JavaMain(可選)。JavaMain是虛擬機的主入口,在openjdk\jdk\src\share\bin\java.c中。

    java.c

    4). 執行./hotspot -gdb,可看到以下信息:

    hotspot-gdb

    5). 編譯成功。

    相关文章

      网友评论

          本文标题:Ubuntu 14.04 編譯 OpenJDK8—基於confi

          本文链接:https://www.haomeiwen.com/subject/xwenuxtx.html