zoukankan      html  css  js  c++  java
  • CentOS 编译 openjdk

    1. 概述

        <<深入理解Java虚拟机--JVM高级特性与最佳实践>>第一章就谈到自己编译jdk,来吧。

    2.  编译环境

        VMware12

        CentOS-7-x86_64-Everything-1611

    3. 软件准备

        Bootstrap JDK:  jdk-7u79-linux-x64.tar.gz

        OpenJDK:  https://jdk7.java.net/source.html

    4. 编译依赖

      4.1 安装alsa软件包

           yum -y install alsa-lib-devel

      4.2 安装 cups-devel

          yum -y install cups-devel

      4.3 安装lib相关库

          yum -y install libX*

      4.4 安装gcc

          yum -y install gcc gcc-c++

      4.5 安装freetype

           4.5.1 下载 http://rpm.pbone.net/index.php3/stat/4/idpl/26641422/dir/centos_7/com/freetype-2.4.11-9.el7.x86_64.rpm.htm

           4.5.2 安装  rpm -ivh freetype-2.4.11-9.el7.x86_64.rpm

      4.6 安装ant

            yum -y install ant

            说明: 这时会将openjdk作为依赖进行安装; 安装完, java -version| ant -version看看

                    && 使用ant.tar.gz解压方式安装 不要安装配置jdk依赖

      4.7 安装libstdc++

            yum -y install libstdc++-static

            说明: 此安装为解决编译时出错 ERROR: Cannot chcon libjvm.so

     

    5. 环境变量配置 vim /etc/profile

        export CLASSPATH

      export JAVA_HOME

        export LANG=C

        export ALT_BOOTDIR=/usr/java/jdk1.7.0_76

        export ALLOW_DOWNLOADS=true

        export USE_PRECOMPILED_HEADER=true

        export ARCH_DATA_MODEL=64

        export HOTSPOT_BUILD_JOBS=4

        export ALT_PARALLEL_COMPILE_JOBS=4

        export SKIP_DEBUG_BUILD=false

        export SKIP_FASTDEBUG_BUILD=true

        export DEBUG_NAME=debug

        export ALT_OUTPUTDIR=/usr/java/openjdk/build

    6.  编译检查

         make sanity

         若输出结果为:Sanity check passed,表示设置正确

    7.  执行编译

         make

    8.  编译时可能出现的其他问题

         8.1 ./gamma: relocation error: /usr/java/jdk1.7.0_76/jre/lib/amd64/libjava.so:

                删除 /usr/java/openjdk/hotspot/make/linux/Makefile文件中 所有test_gamma
                (vim Makefile-> /test_gamma查找->:%s/&& ./test_gamma//g替换所有)

         8.2  Error: time is more than 10 years from present:

                /usr/java/openjdk/jdk/src/share/classes/java/util/CurrencyDate.properties文件中所有时间改为近期

                vim 指令   /20..-搜索-> i 修改 -> esc退出i -> n下一个位置 -> i 直到全部改完

         8.3  其他

                make clean 可以清一下之前编译

    9. 结果图

       

    10. debug版jdk

         /usr/java/openjdk/build-debug/j2sdk-image下的内容为debug版jdk

         删除原有jdk,配置环境变量JAVA_HOME CLASSPATH PATH

       

        查看jdk版本

       

  • 相关阅读:
    php程序员的弱点
    php cli 模式下执行文件,require 加载路径错误
    第一次!
    IO流(一)之IO流综述
    异常和错误
    Comparable与Comparator比较分析
    Collection与Map学习笔记(三)
    两个对象比较
    Collection与Map学习笔记(二)
    包装类、及装箱和拆箱
  • 原文地址:https://www.cnblogs.com/rocky-fang/p/6677921.html
Copyright © 2011-2022 走看看