Ubuntu12.4-http://mirrors.163.com/ubuntu-releases/12.04/ --须要安装纯英文版,避免中文引发没必要要的麻烦
OpenJDK7-https://download.java.net/openjdk/jdk7/java
tips:因为OpenJDK部分代码使用java语言编写,因此须要一个编译好的jdk来编译(。。。。禁止套娃)
BootstrapJDK-jdk-7u80-linux-x64.tar.gz(能够到Oracle下载)linux
这里使用Oracle VM VirtualBox做为虚拟机演示ubuntu
1.安装库 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 libxt-dev libxtst-dev 若是一次安装不成功,请多试几回,或者更换源 2.解压OpenJDK和BootstrapJDK到相应目录下 OpenJDK:/home/pumpkin/j7/openjdk BootstrapJDK:/home/pumpkin/j7/jdk1.7 由于jdk7年代已久,须要对openjdk的文件作些许修改: openjdk/jdk/src/share/classes/java/util/CurrencyData.properties文件,将其中全部的10年前日期改成10年之内的,不然会报错:time is more than 10 years from present
在OpenJDK目录内建立此make.sh脚本,修改其中的两个路径
,并赋予执行权限浏览器
#语言选项,这个必须设置,不然编译好后会出现一个HashTable的NPE错 export LANG=C #Bootstrap JDK的安装路径。必须设置。 export ALT_BOOTDIR=/home/pumpkin/j7/jdk1.7 #容许自动下载依赖 export ALLOW_DOWNLOADS=true #并行编译的线程数,设置为和CPU内核数量一致便可 export HOTSPOT_BUILD_JOBS=2 export ALT_PARALLEL_COMPILE_JOBS=2 #比较本次build出来的映像与先前版本的差别。这个对咱们来讲没有意义,必须设置为false,不然sanity检查会报缺乏先前版本JDK的映像。若是有设置dev或者DEV_ONLY=true的话这个不显式设置也行。 export SKIP_COMPARE_IMAGES=true #使用预编译头文件,不加这个编译会更慢一些 export USE_PRECOMPILED_HEADER=true #要编译的内容 export BUILD_LANGTOOLS=true #export BUILD_JAXP=false #export BUILD_JAXWS=false #export BUILD_CORBA=false export BUILD_HOTSPOT=true export BUILD_JDK=true #要编译的版本 #export SKIP_DEBUG_BUILD=false #export SKIP_FASTDEBUG_BUILD=true #export DEBUG_NAME=debug #把它设置为false能够避开javaws和浏览器Java插件之类的部分的build。 BUILD_DEPLOY=false #把它设置为false就不会build出安装包。由于安装包里有些奇怪的依赖,但即使不build出它也已经能获得完整的JDK映像,因此仍是别build它好了。 BUILD_INSTALL=false #编译结果所存放的路径 export ALT_OUTPUTDIR=/home/pumpkin/j7/pumpkinJDK7 #这两个环境变量必须去掉,否则会有很诡异的事情发生(我没有具体查过这些“”诡异的事情”,Makefile脚本检查到有这2个变量就会提示警告“) unset JAVA_HOME unset CLASSPATH make 2>&1 | tee $ALT_OUTPUTDIR/build.log
openjdk#sh make.sh
我在虚拟机中编译,大约须要23min
ui
编译好的java -version 虚拟机信息中心会带有用户信息
.net