天天看點

Ubuntu14.04 編譯openjdk7u6配置環境<參考http://wendal.net/420.html>下載下傳openjdk-7u6-fcs-src-b24-28_aug_2012.zip編譯等待成功

Ubuntu14.04編譯openjdk7u6

從昨天早上到今天中午,搗鼓了一天多,終于成功了。      
中間重裝了一次系統。      
環境:Ubuntu14.04LTS64位      
    java-6-openjdk-amd64      
    openjdk-7u6-fcs-src-b24-28_aug_2012.zip      

感悟:

  • 編譯openjdk與環境很有關系,原來用32位ubuntu的時候,怎麼都不成功,關鍵是網上很多人用的是64位機器,對32位編譯講解的比較少,是以失敗了好多次後果斷換成64位。      
  • openjdk源代碼下載下傳版本很有技巧,網上大多教你從官網下載下傳,這叫一個坑爹,第一次不小就下載下傳了一個老版本,結果make運作到中途一堆錯誤,真叫人傷心。樓主推薦openjdk-7u6-fcs-src-b24-28_aug_2012.zip,在make中沒有修改任何源代碼,堪稱完美。      
  • jdk和jre的版本用jdk6,樓主編譯多次總是會報如下錯誤:      
Erroroccurred during initialization of VM      
java/lang/NoClassDefFoundError:java/lang/invoke/AdapterMethodHandle      
最後發現是jdk版本問題,參考http://blog.zarue.com/blog/2014/06/21/netbeans-debug-hotspot/      
弄了這麼久,終于成功了。      

下面說說主要步驟:

  • 配置環境<參考http://wendal.net/420.html>

apt-getbuild-dep openjdk-6      
apt-getinstall openjdk-6-jdk      
apt-getinstall libasound-dev build-essential      
然後注意配置環境變量:      
~sudovi /etc/profile      
在最後加上:      
exportJAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64      
exportJRE_HOME=${JAVA_HOME}/jre      
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar      
exportPATH=${JAVA_HOME}/bin:$PATH      
運作~source/etc/profile使jdk環境生效。      
樓主配置完成後檢視效果:      
[email protected]:~$java -version      
javaversion "1.6.0_31"      
OpenJDKRuntime Environment (IcedTea6 1.13.3) (6b31-1.13.3-1ubuntu1)      
OpenJDK64-Bit Server VM (build 23.25-b01, mixed mode)      
[email protected]:~$javac -version      
javac1.6.0_31      
[email protected]:~$      
  • 下載下傳openjdk-7u6-fcs-src-b24-28_aug_2012.zip

網上有很多種下載下傳方法會使人頭暈眼花,樓主認為最漂亮的連結是:      
http://download.java.net/openjdk/?q=download/openjdk/      
【說明:這個連結展示的是用wget指令下載下傳的資源目錄。為了友善讀者,這裡附上      
openjdk-7u6-fcs-src-b24-28_aug_2012.zip的下載下傳連結http://pan.baidu.com/s/1pJ4rxyV,歡迎交流學習。】      
免得不熟悉官網的人被困在幾個頁面上,最終還是沒有找到最新的版本。      
下載下傳完成後當然是用unzip解壓,最後會有一個openjdk的檔案夾。      
  • 編譯

編譯參考:http://blog.csdn.net/myproudcodelife/article/details/24844427

下面是樓主的build.sh:

#!/bin/bash

#設定語言

exportLANG=C

#exportALT_BOOTDIR=/usr/cao/jdk1.7.0_45

exportALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk-amd64/

#允許自動下載下傳依賴包

exportALLOW_DOWNLOADS=true

#使用預編譯頭檔案,不加這個編譯會更慢

exportUSE_PRECOMPILED_HEADER=true

#要編譯的内容

exportBUILD_LANGTOOLS=true

exportBUILD_JAXP=true

exportBUILD_JAXWS=true

exportBUILD_CORBA=true

exportBUILD_HOSTPOT=true

exportBUILD_JDK=true

#要編譯的版本

exportSKIP_DEBUG_BUILD=false

exportSKIP_FASTDEBUG_BUILD=true

exportDEBUG_NAME=debug

#把它設定為FALSE可以避免javaws和浏覽器Java插件之類的部分build

BUILD_DEPLOY=false

#把它設定為false就不會build出安裝包。因為安裝包裡有一些奇怪的依賴

#但即便不build出它也已經得到完整的JDK鏡像,是以還是不用build它

BUILD_INSTALL=false

#存放編譯結果

exportALT_OUTPUTDIR=/usr/openjdk/build

unsetCLASSPATH

unsetJAVA_HOME

#makesanity && make

#makeARCH_DATA_MODEL=64 BUILD_JAXWS=false BUILD_JAXP=false

make2>&1 | tee $ALT_OUTPUTDIR/build.log

  • 等待成功

Ubuntu14.04 編譯openjdk7u6配置環境&lt;參考http://wendal.net/420.html&gt;下載下傳openjdk-7u6-fcs-src-b24-28_aug_2012.zip編譯等待成功