open JDk 7编译 环境ubuntu 14 jdk8

参考:<a target=_blank href="http://blog.csdn.net/chelseablue1905/article/details/47209139">http://blog.csdn.net/chelseablue1905/article/details/47209139</a>


1.配置环境依赖
sudo apt-get install build-essential g++-multilib gcc-multilib ant libxrender-dev xorg-dev libasound2-dev libcups2-dev  gawk zip libxtst-dev libxi-dev libxt-dev
2.
#!/usr/bin/env bash
#语言选项,这个必须设置,否则编译好后会出现一个HashTable的NPE错
export LANG=C
 
#Bootstrap JDK的安装路径。必须设置。 
export ALT_BOOTDIR=/usr/lib/jdk/jdk8
 
#允许自动下载依赖
export ALLOW_DOWNLOADS=true
 
#并行编译的线程数,设置为和CPU内核数量一致即可
export HOTSPOT_BUILD_JOBS=4
export ALT_PARALLEL_COMPILE_JOBS=4
 
#比较本次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/dream/jvm/build
 
#这两个环境变量必须去掉,不然会有很诡异的事情发生(我没有具体查过这些“”诡异的事情”,Makefile脚本检查到有这2个变量就会提示警告“)
unset JAVA_HOME
unset CLASSPATH
 
make 2>&1 | tee $ALT_OUTPUTDIR/build.log

编译时出现以下错误:

build-bootstrap-javac:
    [javac] Compiling 95 source files to /home/xlf/jdk7u-dev/build/langtools/build/bootstrap/classes
    [javac] /home/xlf/jdk7u-dev/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java:2182: warning: [overrides] Class Resolve.InapplicableSymbolsError.Candidate overrides equals, but neither it nor any superclass overrides hashCode method
    [javac]         private class Candidate {
    [javac]                 ^
    [javac] error: warnings found and -Werror specified
    [javac] 1 error
    [javac] 1 warning
 
BUILD FAILED
/home/xlf/jdk7u-dev/langtools/make/build.xml:452: The following error occurred while executing this line:
/home/xlf/jdk7u-dev/langtools/make/build.xml:795: Compile failed; see the compiler error output for details.
 
Total time: 3 seconds
make[2]: *** [build] Error 1
make[2]: Leaving directory `/home/xlf/jdk7u-dev/langtools/make'
make[1]: *** [langtools-build] Error 2
make[1]: Leaving directory `/home/xlf/jdk7u-dev'
make: *** [build_product_image] Error 2

原因是bootstrap jdk错误,自己从新下了个jdk7,ok

#!/usr/bin/env bash
#语言选项,这个必须设置,否则编译好后会出现一个HashTable的NPE错
export LANG=C
 
#Bootstrap JDK的安装路径。必须设置。 
export ALT_BOOTDIR=/usr/lib/jvm/jdk1.7
 
#允许自动下载依赖
export ALLOW_DOWNLOADS=true
 
#并行编译的线程数,设置为和CPU内核数量一致即可
export HOTSPOT_BUILD_JOBS=4
export ALT_PARALLEL_COMPILE_JOBS=4
 
#比较本次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=~/openjdk7/build
 
#这两个环境变量必须去掉,不然会有很诡异的事情发生(我没有具体查过这些“”诡异的事情”,Makefile脚本检查到有这2个变量就会提示警告“)
unset JAVA_HOME
unset CLASSPATH
 
make 2>&1 | tee $ALT_OUTPUTDIR/build.log


编译过程出现错误  http://blog.csdn.net/zitong_ccnu/article/details/50149757

home/hadoopuser1/openjdk7/build/btjars/generatecurrencydata.jar -o /home/hadoopuser1/openjdk7/build/lib/currency.data.temp \
		< ../../../src/share/classes/java/util/CurrencyData.properties
Error: time is more than 10 years from present: 1136059200000
java.lang.RuntimeException: time is more than 10 years from present: 1136059200000
	at build.tools.generatecurrencydata.GenerateCurrencyData.makeSpecialCaseEntry(GenerateCurrencyData.java:285)
	at build.tools.generatecurrencydata.GenerateCurrencyData.buildMainAndSpecialCaseTables(GenerateCurrencyData.java:225)
	at build.tools.generatecurrencydata.GenerateCurrencyData.main(GenerateCurrencyData.java:154)
make[4]: *** [/home/hadoopuser1/openjdk7/build/lib/currency.data] Error 1
make[4]: Leaving directory `/home/hadoopuser1/openjdk7/openjdk-7u40-fcs-src-b43-26_aug_2013/jdk/make/java/java'
make[3]: *** [all] Error 1
make[3]: Leaving directory `/home/hadoopuser1/openjdk7/openjdk-7u40-fcs-src-b43-26_aug_2013/jdk/make/java'
make[2]: *** [all] Error 1
make[2]: Leaving directory `/home/hadoopuser1/openjdk7/openjdk-7u40-fcs-src-b43-26_aug_2013/jdk/make'

解决方法: CurrencyData.properties 中的时间改成10年内

ok

#-- Build times ----------
Target all_product_build
Start 2016-08-15 22:38:53
End   2016-08-15 23:33:37
00:04:32 corba
00:22:31 hotspot
00:00:48 jaxp
00:01:01 jaxws
00:24:11 jdk
00:01:41 langtools
00:54:44 TOTAL



hadoopuser1@master:/exapp/openjdk7/build/j2sdk-image/jre/bin$ l
java*     orbd*     policytool*  rmiregistry*  tnameserv*
keytool*  pack200*  rmid*        servertool*   unpack200*
hadoopuser1@master:/exapp/openjdk7/build/j2sdk-image/jre/bin$ ./java -version
openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.7.0-internal-hadoopuser1_2016_08_15_22_38-b00)
OpenJDK 64-Bit Server VM (build 24.0-b56, mixed mode)
hadoopuser1@master:/exapp/openjdk7/build/j2sdk-image/jre/bin$ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值