欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Ubuntu如何輕松編譯openJDK詳解

 更新時間:2018年06月13日 11:19:19   作者:mozi_song  
這篇文章主要給大家介紹了關(guān)于Ubuntu如何輕松編譯openJDK的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

花了三天在windows上搞openJDK,對bash本來就不熟,加上各種莫名依賴和腳本里的bug,身心俱疲。最后make all的時候產(chǎn)生一個莫名其妙的錯誤說什么有warning且-Werror置為了true,死活沒google到-Werror是什么鬼,只好作罷了。

今天本菜鳥突然想起來,朕還有Ubuntu虛擬機(jī),權(quán)且一試,沒想到輕松成功。

平臺:Ubuntu Version 5.1.30 (3.2.0-98-generic-pae #138-Ubuntu SMP Mon Jan 11 13:11:12 UTC 2016 i686 i686 i386 GNU/Linux)

步驟1:(按照《深入理解Java虛擬機(jī)》中的命令)一鍵下載依賴

sudo apt-get install build-essential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif3 libmotif-dev ant

這里寫的不一定全,不過暫且先裝著,后面如果缺少什么依賴可以再按提示安裝,一個佛系程序員的一天就是見招拆招。

openJDK的源代碼有C++也有Java,所以需要一個Bootstrap JDK去編譯Java的部分。這個JDK通常是比你要編譯的openJDK早一個版本的官方JDK,這是官方的README-builds(在第二步中下載下來的源碼根目錄下)說的:

...The general rule is that the bootstrap JDK must be an instance of the previous major release of the JDK.

每一個版本的README-builds中都會指明這一版的openJDK需要的Bootstrap JDK具體版本,比如openJDK8需要的是JDK7u7以上的版本,但不能是JDK8:

步驟2:下載源碼

sudo hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev/
cd jdk8u-dev
chmod 755 get_source.sh
./get_source.sh

用mercurial下載jdk8u的最新源碼。小伙伴如果想下載其它版本的源碼可以去這里browse: http://hg.openjdk.java.net/。這個下載過程大約三十分鐘。

如果不想用mercurial,也可以在這里下載zip包:http://jdk.java.net/java-se-ri/8 (在網(wǎng)頁偏下方RI source code那里):

我在windows上編譯是就是用這個zip包解壓編譯的,最后失敗了。在Ubuntu上我還是決定用mercurial下載,各路大神盡可不必理會。

步驟3:設(shè)置環(huán)境變量新建一個setup.sh,把以下的內(nèi)容拷貝進(jìn)去:

export LANG=C

#BootStrap-JDK的安裝路徑,替換為自己bootstrap-JDK的路徑

export ALT_BOOTDIR=/usr/lib/jvm/java-7-oracle-1.7.0.80 

export ALLOW_DOWNLOADS=true

export HOTSPOT_BUILD_JOBS=8

export SKIP_COMPARE_IMAGES=true

#要編譯的內(nèi)容,讀者可以根據(jù)需要自行選擇

export BUILD_LANGTOOLS=true

#export BUILD_JAXWS=false

#export BUILD_JAXP=false

#export BUILD_CORBA=false

export BUILD_HOTSPOT=true

export BUILD_JDK=true

export SKIP_COMPARE_IMAGES=true

BUILD_DEPLOY=false

BUILD_INSTALL=false

#編譯結(jié)果存放的路徑,建議存放在openjdk源碼中build文件夾

export ALT_OUTPUTDIR=/usr/dev/jvm/openjdk/build

#這兩個環(huán)境變量需要去掉,不然會出問題

unset JAVA_HOME

unset CLASSPATH

運行

./setup.sh

設(shè)置一遍就好。

步驟4:進(jìn)行編譯

到下好的openJDK源碼的根目錄下運行make,大概需要二三十分鐘。本來是應(yīng)該運行make sanity的,但是我又碰到了這個錯誤……

媽喲什么鬼,搜了一會無甚結(jié)果,于是雞賊的跳過了這一步直接運行make,竟然成功了,成功后的輸出長這樣:

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 利用rsync自動備份 完全配置方法 增加了ip限制

    利用rsync自動備份 完全配置方法 增加了ip限制

    利用rsync自動備份 完全配置,一些細(xì)節(jié)也做到了,對于比較熟悉rsync的朋友應(yīng)用,限制了ip相對來說安全增加了。
    2009-09-09
  • 關(guān)于g++和gcc的相同點和區(qū)別詳解

    關(guān)于g++和gcc的相同點和區(qū)別詳解

    下面小編就為大家?guī)硪黄P(guān)于g++和gcc的相同點和區(qū)別詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • linux下jps命令找不到的問題及解決

    linux下jps命令找不到的問題及解決

    這篇文章主要介紹了linux下jps命令找不到的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Linux平臺和Windows平臺互傳文件的實現(xiàn)方法

    Linux平臺和Windows平臺互傳文件的實現(xiàn)方法

    本文講述了在Linux主機(jī)與windows主機(jī)之間如何互傳文件的方法,因為有時linux主機(jī)中的一些文件可能會在windows環(huán)境下用到,所以文章給大家介紹的非常詳細(xì),感興趣的朋友可以參考下
    2024-05-05
  • CentOS設(shè)置精準(zhǔn)時間的方法

    CentOS設(shè)置精準(zhǔn)時間的方法

    下面小編就為大家分享一篇CentOS設(shè)置精準(zhǔn)時間的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • apache,nginx上傳目錄無執(zhí)行權(quán)限的設(shè)置方法

    apache,nginx上傳目錄無執(zhí)行權(quán)限的設(shè)置方法

    至于為什么設(shè)置上傳目錄無權(quán)限這個我就不累贅了,現(xiàn)在比較流行的web服務(wù)有iis,apache,nginx,使用操作系統(tǒng)無非是windows or *nux
    2010-12-12
  • linux下使用rsync同步目錄

    linux下使用rsync同步目錄

    本篇文章詳細(xì)介紹了linux下使用rsync同步目錄,使用rsync同步后可以保持目錄的一致性,有需要的可以了解一下。
    2016-11-11
  • 在Ubuntu Linux上安裝和使用Git和GitHub

    在Ubuntu Linux上安裝和使用Git和GitHub

    今天小編就為大家分享一篇關(guān)于在Ubuntu Linux上安裝和使用Git和GitHub的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-09-09
  • 詳解在Linux下搭建Git服務(wù)器

    詳解在Linux下搭建Git服務(wù)器

    本篇文章主要介紹了詳解在Linux下搭建Git服務(wù)器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 11個有用的Linux命令

    11個有用的Linux命令

    Linux命令行吸引了大多數(shù)Linux愛好者。一個正常的Linux用戶一般掌握大約50-60個命令來處理每日的任務(wù)。今天為你解釋下面幾個命令:sudo、python、mtr、Ctrl+x+e、nl、shuf、shuf、last。
    2013-10-10

最新評論