Centos6.5编译openjdk7

前端之家收集整理的这篇文章主要介绍了Centos6.5编译openjdk7前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、环境准备

1、Centos6.5:VMware上面安装Centos6.5,可以联网用来下载,需要注意内存最好要大于1G,我设置的为2G,之前设置的512M内存,编译源码时出现各种问题;

2、apache-ant-1.7.1-bin.zip :下载地址:http://archive.apache.org/dist/ant/binaries/,或者https://pan.baidu.com/s/1kUYa1bp,解压安装路径为:/usr/java/apache-ant-1.7.1;

3、jdk-6u26-linux-x64.bin :下载路径安装路径为https://pan.baidu.com/s/1eSpfHHC,安装路径: /usr/java/jdk1.6.0_45;

4、openjdk源码: http://download.java.net/openjdk/jdk7u40/promoted/b43/openjdk-7u40-fcs-src-b43-26_aug_2013.zip?q=download/openjdk/jdk7u40/promoted/b43/openjdk-7u40-fcs-src-b43-26_aug_2013.zip,或者https://pan.baidu.com/s/1o7PMZB8,下载后解压到路径 /home/lxz/openjdk;


PS:

调试一段时候,才知道openjdk是C++变写的代码或者叫源码,可以理解为java代码,可以在VS、NetBeens等工具上调试;

而编译好的代码,类似于java中的class,可以直接在linux上面运行,可以代替安装好的jdk;

所以可以通过VS、NetBeens工具查看、调试openjdk源码,通过查看openjdk源码可以看到JVM调优的一些参数,这些参数可以想象成java代码方法参数;

也可以直接在linux上面调试编译好的代码


二、下载安装依赖包

  1. #配置更新源
  2. cd /etc/yum.repos.d/
  3. curl http://mirrors.163.com/.help/CentOS6-Base-163.repo > CentOS6-Base-163.repo
  4.  
  5. #当前wget还不能用
  6. wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
  7. mv CentOS-Base.repo CentOS-Base.repo.bak
  8. mv CentOS6-Base-163.repo CentOS-Base.repo
  9. yum makecache
  10.  
  11. yum -y groupinstall 'base'
  12. yum -y install make
  13.  
  14. #安装jdk必备软件包:
  15. yum -y install alsa-lib-devel
  16. yum -y install cups-devel
  17. yum -y install libXi-devel
  18. yum -y install gcc gcc-c++
  19. yum -y install libX*

三、编译源码
编译源码前需要先做执行配置:


  1. export LANG=C
  2. export ALT_BOOTDIR=/usr/java/jdk1.6.0_45
  3. export ALT_JDK_IMPORT_PATH=/usr/java/jdk1.6.0_45
  4. export ANT_HOME=/usr/java/apache-ant-1.7.1
  5. #允许自动下载依赖
  6. export ALLOW_DOWNLOADS=true
  7. #并行编译的线程数(设置和cpu内核一样就好,在VMware安装时可以设置)
  8. export HOTSPOT_BUILD_JOBS=4
  9. export ALT_PARALLEL_COMPILE_JOBS=1
  10. #64位jdk
  11. export ARCH_DATA_MODEL=64
  12. #不比较本次build出来的映像与先前版本的差异
  13. export SKIP_COMPARE_IMAGES=true
  14. #使用预编译头文件
  15. export USE_PRECOMPILED_HEADER=true
  16. #要编译的内容
  17. export BUILD_LANGTOOLS=true
  18. export BUILD_HOTSPOT=true
  19. export BUILD_JDK=true
  20. export BUILD_JAXWS=true
  21. export BUILD_JAXP=true
  22. export BUILD_CORBA=true
  23. export SKIP_DEBUG_BUILD=false
  24. export SKIP_FASTDEBUG_BUILD=false
  25. EXPORT DEBUG_NAME=debug
  26. BUILD_DEPLOY=false
  27. BUILD_INSTALL=false
  28. export ALT_OUTPUTDIR=/home/lxz/openjdk/build
  29. unset CLASSPATH
  30. unset JAVA_HOME
  31. #用来检查前面做做的设置是否正确
  32. make sanity
  33. #编译,编译成功后在 /home/lxz/openjdk 会有build-debug、build-fastdebug两个目录
  34. make 2>&1 | tee $ALT_OUTPUTDIR/build.log


四、编译过程中出现的问题

1、时间问题

  1. Error: time is more than 10 years from present: 1120165200000
  2. java.lang.RuntimeException: time is more than 10 years from present: 1120165200000
  3. at build.tools.generatecurrencydata.GenerateCurrencyData.makeSpecialCaseEntry(GenerateCurrencyData.java:285)
  4. at build.tools.generatecurrencydata.GenerateCurrencyData.buildMainAndSpecialCaseTables(GenerateCurrencyData.java:225)
  5. at build.tools.generatecurrencydata.GenerateCurrencyData.main(GenerateCurrencyData.java:154)
  6. make[4]: *** [/root/openjdk6/build/lib/currency.data] Error 1

需要修改源码目录中的CurrencyData.properties文件(/home/lxz/openjdk/jdk/src/share/classes/java/util/CurrencyData.properties),我们需要做的是把文件中以下的时间改为10年内的一个时间,比如:2005-12-31-20-00-00中2005改为2015;


五、验证

参考链接

点击打开链接:http://www.linuxidc.com/Linux/2015-05/117248.htm

点击打开链接:http://www.cnblogs.com/ACFLOOD/p/5528035.html

猜你在找的CentOS相关文章