CentOS编译OpenJDK

      在CentOS下编译OpenJDK一般需要以下几个步骤

     1)获取OpenJDK源码,下载地址为openjdk1.7:http://download.java.net/openjdk/jdk7 ; openjdk1.6:http://download.java.net/openjdk/jdk6

     2)下载完成后,解压openjdk,解压命令为:unzip file.zip

         解压完成后的目录结构为:

           hotspot:存放OpenJDK Hotspot Virtual Machine的源代码和make文件

           corba:存放OpenJDK Cobra的源代码和make文件

           jaxp:存放OpenJDK JAXP的相关信息和make文件,具体的源代码会再编译时会下载

           jaxws:存放OpenJDK JAXWS的相关信息和make文件,具体的源代码会再编译时下载

           jdk:存放OpenJDK runtime libraries的源代码和make文件

           langtools:存放OpenJDK的javac等工具的源代码和make文件

    3)安装JDK1.6,一些JAVA文件需要编译,无需指定JAVA_HOME、CLASSPATH

    4)安装插件

          a、alsa包(AdvancedLinux Sound Architecture)

                检查是否已经安装alsa-lib和alsa-lib-devel   rpm -qa|grep alsa

                如果未安装执行安装命令 yum install alsa-lib-devel

  b、cups-devel  命令  检查:rpm -qa|grep cups-devel   安装:yum install cups-devel

          c、libXi-devel    命令  检查:rpm -qa|grep libXi-devel    安装:yum install libXi-devel

          d、g++               命令:yum install gcc gcc-c++

          e、freetype2.3  下载压缩包(tar.gz格式)

解压:tar -xvf freetype-2.3.12.tar.gz

                安装 cd freetype-2.3.12  ./configrue && make && make install

           f、安装ant 下载压缩包(tar.gz格式)

                解压:tar -xvf file.tar.gz

      5)设置环境变量

            执行 vi /etc/profile,在文件末尾添加

            unset CLASSPATH //如果设置了CLASSPATH

      unset JAVA_HOME // 如果设置了JAVA_HOME

            export LANG=C

            export ALT_BOOTDIR=/usr/opt/jdk1.6  // 第3步安装 的JDK目录

            export ANT_HOME=ant安装目录

             export ALT_FREETYPE_HEADERS_PATH=/usr/local/include/freetype2

             export ALT_FREETYPE_LIB_PATH=/usr/local/lib

              export SKIP_DEBUG_BUILD=false

              export SKIP_FASTDEBUG_BUILD=true

              export DEBUG_NAME=debug

              保存后,记得要使修改生效,执行命令:. /etc/profile .与/之间有空格

    6)、编译检查

              进入openjdk目录 cd /openjdk

              make sanity ARCH_DATA_MODEL=32

              如果编译成功,则输出Sanity check passed.

              如果出现错误,则根据错误信息进行排查。

              如:

  1.  ERROR: Your JAVA_HOME environment variable is set.  This will   
  2.               most likely cause the build to fail.  Please unset it   
  3.                and start your build again.   
  4.        Exiting because of the above error(s).   
  5.    
  6.        make: *** [post-sanity] Error 1  

原因为设置了JAVA_HOME,需要再配置文件中加上unset JAVA_HOME

  7)开始编译 

make ARCH_DATA_MODEL=32  debug_build ALLOW_DOWNLOADS=true

                注:此过程非常漫长,需要1-2个小时的时间,需要耐心等待

                ALLOW_DOWNLOADS=true目的是下载jaxp和jaxws的源码

          如果出现如下代码,则表示成功:

          #-- Build times ----------
Target debug_build
Start 2013-01-07 14:41:38
End 2013-01-07 15:09:46
00:01:23 corba
00:09:56 hotspot
00:00:18 jaxp
00:00:25 jaxws
00:15:33 jdk
00:00:33 langtools
00:28:08 TOTAL
-------------------------
make[1]: Leaving directory `/application/tools/openjdk'

8)编译过程中出现的问题

缺少X*库

编译过程中多次出现如下缺少X*, awt之类的错误,基本上都是因为缺乏图形相关的库

       ../../../src/solaris/native/sun/awt/img_util_md.h:32: ??:expected specifier-qualifier-list before 'XID'make[5]: *** [/home/jiangbo/Workspace/jdk/openjdk/build/linux-amd64/tmp/sun/sun.awt/awt/obj64/BufImgSurfaceData.o] Error 1make[5]: *** Waiting for unfinished jobs....make[5]: Leaving directory `/home/jiangbo/Workspace/jdk/openjdk/jdk/make/sun/awt'make[4]: *** [library_parallel_compile] Error 2make[4]: Leaving directory `/home/jiangbo/Workspace/jdk/openjdk/jdk/make/sun/awt'make[3]: *** [all] Error 1make[3]: Leaving directory `/home/jiangbo/Workspace/jdk/openjdk/jdk/make/sun'make[2]: *** [all] Error 1make[2]: Leaving directory `/home/jiangbo/Workspace/jdk/openjdk/jdk/make'make[1]: *** [jdk-build] Error 2make[1]: Leaving directory `/home/jiangbo/Workspace/jdk/openjdk'make: *** [build_product_image] Error 2

        解决方法,安装X相关的库

        yum install libX*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值