CentOS編譯openjdk


編譯openjdk

1. 下載openjdk源碼

openjdk的官網是OpenJDK (java.net)

在網站左側就能看到它的源碼位置的鏈接

從圖上可以看到,它的源碼在兩個位置有托管,Mercurial、GitHub這兩個網站都有。我們點擊GitHub,進去到它GitHub的位置。

上圖第一個就是openjdk的倉庫地址了 。

選擇HTTPS,復制地址。

下一步,登錄碼雲(沒賬號的可以先創建一個),在邊上有個+的圖標,點開就可以看到二級菜單有個從GitHub/GitLab導入倉庫

上面Git倉庫URL,填入從GitHub復制的地址,https://github.com/openjdk/jdk.git ,倉庫名字可以自己寫一個。完了之后點擊導入,就可以將openjdk的源碼導入到碼雲上來,導入后和GitHub就都是一樣的。

選擇導入GitHub倉庫的話,可以關聯自己的GitHub賬號,把自己GitHub的倉庫也導入過來。

最后,我們就可以從碼雲上下載openjdk的源碼了,再也不是龜速了。我本地下載6MB/s,不到1分鍾就下載完成了。

我本次選的是jdk-11+25這個分支。

我本地下載下來的是openjdk-jdk-11+25.zip

2. 環境准備

  1. 需要一個linux(windows也可以,不過好像比較麻煩,我沒試過。我本次是用Linux)環境。我是虛擬機安裝的CentOS7。具體的版本號如下圖

  1. 根據阿里雲設置下軟件鏡像源。centos鏡像-centos下載地址-centos安裝教程-阿里巴巴開源鏡像站 (aliyun.com)

  2. 在環境中安裝jdk並設置環境變量(不用卸載系統自帶的JDK,直接可以使用壓縮版的jdk解壓后,設置相關的環境變量就可以)。

     vim ~/.bashrc
    
    #在~/.bashrc中添加下面java環境變量
    JAVA_HOME=/root/openjdk/jdk-11.0.10   #java目錄
    CLASSPATH=$JAVA_HOME/lib
    PATH=$JAVA_HOME/bin:$PATH
    export PATH JAVA_HOME CLASSPATH
    
    
    source  ~/.bashrc   #使環境變量生效
    

    jdk的版本不能小於要編譯的jdk版本-1,這個在編譯指導中有寫,具體自己看吧。

我本次使用的是jdk11,具體的版本號是如下圖。

4.將下載的openjdk的源碼的壓縮包(我本次的壓縮包是openjdk-jdk-11+25.zip)上傳到CentOS7服務器上,后續所有的工作就都在CentOS7上執行了。


到這里,所有的准備工作就完成了,下一步就開始編譯openjdk了。

3. 編譯openjdk

  1. 首先在shell中輸入java -version,確實當前默認的java就是我們自己安裝的。

  2. 解壓上傳的openjdk源碼壓縮包。

    yum install zip unzip  #安裝解壓縮軟件
    unzip openjdk-jdk-11+25.zip   #解壓openjdk源碼包
    
  3. 源碼包中有個README,打開可以看到編譯的幫助文檔是在doc目錄下的building文件。上面2.3中的需要的jdk的版本也是在這個building的幫助文檔里。

  1. 編譯openjdk使用make來完成的,所以需要先安裝make(很多服務器都是自帶make的,如果自帶了,那就不用再安裝了.)。

    yum install make  #安裝make,我本次用的CentOS就自帶了
    
  2. 下一步就是根據building中的指導來編譯了。

    bash ./configure --help 這個命令可以來查看各種編譯選項。

    bash ./configure --with-debug-level=slowdebug  --with-target-bits=64 
    make
    

    我本次就是使用上面兩行命令來編譯的。


    編譯過程中需要的軟件也不必提前安裝,安裝過程中如果發現缺軟件,會有提示。如下圖,根據提示安裝相關軟件就可以了。

    下面就是我本地實際安裝的軟件了。都是根據錯誤提示安裝的。

    sudo yum install libXtst-devel libXt-devel libXrender-devel libXi-devel
    sudo yum install cups-devel
    sudo yum install fontconfig-devel
    sudo yum install alsa-lib-devel
    

​ configuration成功的話,會有如下圖

​ make成功的話會有如下圖

  1. 如果編譯成功,會在build/linux-x86_64-normal-server-slowdebug/jdk這個目錄下生成我們編譯的openjdk。

    執行如下命令,驗證我們的編譯結果。

    cd build/linux-x86_64-normal-server-slowdebug/jdk
    cd bin
    ./java -version
    


到這里,整個openjdk的編譯就結束了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM