1. 程式人生 > >ubuntu 16.04 編譯openjdk之坑

ubuntu 16.04 編譯openjdk之坑

在ubuntu 16.04上編譯openjdk,記錄

  1. 自行下載jdk,依據readme.html 中的配置下載,7u40的openjdk 需要jdk6u18,orcal 網站下載即可

一般搜尋到的文件都是下面這個,
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

  1. 編譯過程中遇到不少坑,下面地址解決了大部分問題
    地址
  2. 7uXX版本的oopenjdk 限制了只能某些版本的kernel 可使用,在 hotpot/make/linux/Makefile中的SUPPORTED_OS_VERSION 配置的,一般只有2.4% 2.5% 2.6% 3%,在後面加上4% 即可,即2.4% 2.5% 2.6% 3% 4%
  3. 上面文件中沒有提到的,需要刪除 hotpot/make/linux/Makefile 中所有的&& ./test_gamma ,否則會報一個莫名其妙的問題
  4. 會出現java.lang.RuntimeException: time is more than 10 years from present: 1120165200000
    錯誤,需要修改原始碼目錄中的一個檔案,這個檔案是 <OpenJDK原始碼目錄>/jdk/src/share/classes/java/util/CurrencyData.properties。 我們需要做的是把檔案中以下的時間改為10年內的一個時間
AZ=AZM;2005-12-31-20-00-00;AZN

MZ=MZM;2006-06-30-22-00-00;MZN

RO=ROL;2005-06-30-21-00-00;RON

TR=TRL;2004-12-31-22-00-00;TRY

VE=VEB;2008-01-01-04-00-00;VEF