自己动手编译的openjdk7u6(在ubuntu14.04)
2015-10-06 12:46
501 查看
搞了一个星期太累,哈哈,总算是搞出来了,在这里写下经验,以便以后使用
参考: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》配置编译环境:
3)安排路径
下载好源码文件后:先放在/home/***目录下
得到一个openjdk文件夹,然后进入
运行 sh build.sh
接下来是碰到的问题以及解决方法:
把使用语言设置为英文:系统设置----语言支持
参考: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-essential2)配置环境变量:
sudo vi /etc/profile 在最后加上: export J***A_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64 export JRE_HOME=${J***A_HOME}/jre export CLASSPATH=.:$J***A_HOME/lib/dt.jar:$J***A_HOME/lib/tools.jar export PATH=${J***A_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 J***A_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相关文章推荐
- JUnit报错java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
- Eclipse常用快捷键
- Spring常用注解
- Java基础 学习
- Spring实战(第3版)读书总结
- java继承和多态、接口小结
- 0917 词法分析程序(java版)
- java递归获取文件列表和File的应用
- Java语言基础作业
- Java最最常用的100个类排序(非官方)
- Java最最常用的100个类排序(非官方)
- java中的空对象(null) 空值(“”)空格值(" ") 的区分
- JVM的垃圾回收机制详解和性能调优
- spring原理
- springMVC+MyBetias事务不回滚
- 使用JAVA操作HIVE
- Java 读取大文件
- PhoneGap 上传图片HTML和服务器端端实现(JAVA)
- Java多线程18:线程池
- Eclipse web 项目转到myEclipse无法导出WAR包