自己动手编译的openjdk7u6(在ubuntu14.04)


搞了一个星期太累,哈哈,总算是搞出来了,在这里写下经验,以便以后使用
大笑

参考:http://www.th7.cn/system/lin/201408/66351.shtml,

准备ubuntu14.04 lts 64,openjdk源码文件(openjdk-7u6-fcs-src-b24-28_aug_2012.zip)

源码下载:http://www.java.net/download/openjdk/jdk7u6/promoted/b24/openjdk-7u6-fcs-src-b24-28_aug_2012.zip


步骤:

1》配置编译环境:

apt-get build-dep openjdk-6

apt-get install openjdk-6-jdk

apt-get install libasound-dev build-essential
2) 配置环境变量:

sudo vi /etc/profile

在最后加上:

    export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64

    export JRE_HOME=${JAVA_HOME}/jre

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    export PATH=${JAVA_HOME}/bin:$PATH

source /etc/profile使jdk环境生效。(我碰到了openjdk的bug倒是不能编译,这里先用openjdk)

可以运行:java -version和javac -version看看版本


3)安排路径

下载好源码文件后:先放在/home/***目录下

unzip openjdk-7u6-fcs-src-b24-28_aug_2012.zip

得到一个openjdk文件夹,然后进入

cd openjdk

4)编译
创建一个脚本(build.sh)
#!/bin/bash
#设置语言
export LANG=C
export ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk-amd64/

#允许自动下载依赖包
export ALLOW_DOWNLOADS=true

#使用预编译头文件,不加这个编译会更慢
export USE_PRECOMPILED_HEADER=true

#要编译的内容
export BUILD_LANGTOOLS=true
export BUILD_JAXP=true
export BUILD_JAXWS=true
export BUILD_CORBA=true
export BUILD_HOSTPOT=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/openjdk/build

unset CLASSPATH
unset JAVA_HOME
make sanity
#makeARCH_DATA_MODEL=64 
#BUILD_JAXWS=false 
#BUILD_JAXP=false
make 2>&1 | tee $ALT_OUTPUTDIR/build.log

 

运行 sh build.sh

接下来是碰到的问题以及解决方法:

把使用语言设置为英文:系统设置----语言支持

# 自2015年开始一般会出现如下异常
/opt/jdk1.6.0_31/bin/java  -Xmx896m -Xms128m -XX:PermSize=32m -XX:MaxPermSize=160m -jar /root/openjdk6/build/btjars/generatecurrencydata.jar -o /root/openjdk6/build/lib/currency.data.temp \
                < ../../../src/share/classes/java/util/CurrencyData.properties
Error: time is more than 10 years from present: 1120165200000
java.lang.RuntimeException: time is more than 10 years from present: 1120165200000
        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]: *** [/root/openjdk6/build/lib/currency.data] Error 1
# 通过修改CurrencyData.properties文件, 把10年之前的时间修改为10年之内即可(把所有的时间格式的时间改为2015以前的十年以
内的年数)

# 部分amd64架构的机器可能会出现如下异常
cd linux_amd64_compiler2/product && ./test_gamma
java full version "1.6.0_36-b36"
./gamma: relocation error: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.36.x86_64/jre/lib/amd64/libjava.so: symbol JVM_FindClassFromCaller, version SUNWprivate_1.1 not defined in file libjvm.so with link time reference
# 主要是由于OpenJDK的一个bug导致的, 把Open JDK替换为Oracle JDK即可, 注意同时修改build.sh(就是</span><span style="font-family:Liberation Serif,serif;"><span style="font-size:18px;"><span lang="en-US">
export ALT_BOOTDIR=</span></span></span><span style="font-size:14px;">改为</span><span style="font-size:14px;">Oracle</span><span style="font-size:14px;">JDK的路径)中的内容,安装</span><span style="font-size:14px;">OracleJDK请参考其他网站(同时需要修改环境变量哦)

</span>

Ubuntu Linux下安装Oracle JDK

:blog.csdn.net/gobitan/article/details/24322561
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值