因为OpenJDK是开源的,这里使用openJDK进行编译联系

环境要求


  • Centos6.7 64位
  • openjdk-7u40-fcs-src-b43-26_aug_2013.zip
  • bootstrap JDK:  jdk1.6.0_38

因为我们是编译,所以环境的话可以根据自己的实际情况进行调整,JDK的源码包可以去这个网站进行下载https://jdk7.java.net/source.html

boostrap JDK:辅助JDK,意思是我们要编译一个新的JDK时需要别的JDK来辅助完成,就像点火需要打火机一样。

编译前的准备


因为要进行编译所以需要安装相应的编译工具

  • 安装gcc、gcc-c++

  yum install -y gcc gcc-c++

  • 安装cups-devel (unix打印系统)

  yum install -y cups-devel  

  • 安装alsa-lib-devel

  yum install -y alsa-lib-devel

  • 安装X图形库

  yum install -y libXrender libXrender-devel libXi-devel libXt-devel libXtst-devel

  • 安装freetype字体库

  yum install -y freetype freetype-devel

  • 安装bootstrap JDK

    yum install -y java-1.6.0-openjdk java-1.6.0-openjdk-devel

  • 安装ant

  yum install -y ant ant-nodeps

设置环境变量


编译JDK时不同通过读取配置文件来看用户做了那些定制,而是用过读取当前shell的环境变量来看设置的。在设置环境变量时可以参考以下脚本

因为我们是要研究java虚拟机的所以这里开启DEBUG模式

#!/bin/bash

#clear settings if you have ever setup
unset CLASSPAHT
unset JAVA_HOME #select language, required
export LANG=C #bootsrap JDK path installed, required
export ALT_BOOTDIR=/usr/local/jdk1..0_79 #setup freetype
export ALT_FREETYPE_LIB_PATH=/usr/local/lib
export ALT_FREETYPE_HEADERS_PATH=/usr/local/include
#setup ant path
export ANT_HOME=/root/apache-ant-1.9. #dowload dependencies automatically
export ALLOW_DOWNLOADS=ture #setup number of compiled threads same to cpus
export HOTSPOT_BUILD_JOBS=
export ALT_PARALLEL_COMPILE_JOBS= export SKIP_COMPARE_IMAGES=true export USE_PRECOMPILED_HEADER=true #setup what you want to compile
export BUILD_LANGTOOLS=true
#export BUILD_JAXP=false
#export BUILD_JAXWS=false
#export BUILD_CORBA=false
export BUILD_HOTSPOT=true
export BUILD_JDK=true #setup arch= if your cpu is or arch=
export ARCH_DATA_MODEL= #setup version
#export SKIP_DEBUG_BUILD=false
#export SKIP_FASTDEBUG_BUILD=true
#export DEBUG_NAME=debug BUILD_DEPLOY=false #cancel build install package
BUILD_INSTALL=false #setup output DIR
export ALT_OUTPUTDIR=/usr/local/jdk7-dev/build

注意:在执行脚本时使用source命令执行 source setenv.sh

编译


环境检查

当我们设置好环境变量后如果看我们的设置是否正确

进入源码的根目录,执行make sanity,如果结果如下则表示环境设置成功

编译

在源码的根目录执行make all就可以进行编译了

Centos下编译JDK的更多相关文章

  1. centos下编译安装lnmp

    centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...

  2. centos 下安装jdk、tomcat 以及tomcat无法从外部访问的解决办法

    centos 下安装jdk.tomcat 以及tomcat无法从外部访问的解决办法 原创 2014年08月28日 10:24:33 标签: selinux enforce cent 2223 昨天在c ...

  3. CentOS下配置jdk

    CentOS下配置jdk 1.在jdk官网上下载最新版本的jdk 2.将jdk放到相应的位置,使用如下命令来解压. .0_181 /opt/data/ tar -zxf jdk-8u181-linux ...

  4. Ubuntu/CentOS下编译Nginx最基本参数

    Ubuntu/CentOS下编译Nginx安装基本参数,做个记录: groupadd www useradd -g www www ./configure --user=www --group=www ...

  5. 转:在CentOS下编译安装GCC

    转:https://teddysun.com/432.html 在CentOS下编译安装GCC 技术  秋水逸冰  发布于: 2015-09-02  更新于: 2015-09-02  6519 次围观 ...

  6. CentOS 下编译安装Apache

    CentOS 下编译安装Apache 卸载原有的apache 首先从 http://httpd.apache.or 下载apache源码包httpd-2.4.4.tar.gz然后从 http://ap ...

  7. 【转】Centos下编译升级安装Boost

    https://www.xingchenw.cn/article/191 Centos下编译升级安装Boost 首先在官网现在相应的包 https://www.boost.org/users/down ...

  8. centos下编译安装mysql5.6

    CentOS 6.4下编译安装MySQL 5.6.14 参考:http://www.cnblogs.com/xiongpq/p/3384681.html 概述: CentOS 6.4下通过yum安装的 ...

  9. 2、CentOS下编译安装Python2.7.6(转)

    CentOS系统下面Python在升级到2.7.6的时候,没有找到安装包直接安装,只能通过源代码编译的方式来安装Python 2.7.6版本.这篇是编译和安装Python2.7.6的过程记录. Cen ...

随机推荐

  1. pl/sql developer——instant-client 简单配置

    instant-client(数据库即时客户端) 官方说明:即时客户端在一个单独的针对 Instant Client 的 OTN 开发和分发许可下提供,它允许大多数许可下载.重新分发和部署到生产环境中 ...

  2. VC++ Debug编译方式

    字节填充 VC++在Debug编译方式下,new的内存用0xcd(助记词为Cleared Data)填充,防止未初始化: delete后,内存用0xdd(Dead Data)填充,防止再次被使用. 这 ...

  3. redis安装及基础操作(1)

    ============================================================= 编译安装 0.环境 Linux:centos6.5 redis:3.0.5 ...

  4. Android初涉及之Android Studio&JAVA入门--二月不能不写东西

    是的,我还没有放弃写博客. 是的,我也没有放弃PHP的学习. 是的,我要开始学学最TM火的Android开发了. 你呢 1.Android Studio 一.概况 安装和配置什么的就不具体说了,网上一 ...

  5. openjudge8469特殊密码锁[贪心]

    描述 有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态. 然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转.当然,如果你 ...

  6. 第64课 C++中的异常处理(上)

    1. C++内置的异常处理:try-catch (1)try语句处理正常代码逻辑 (2)catch语句处理异常情况 (3)try语句中的异常由对应的catch语句处理,如果对应的catch中没有处理该 ...

  7. 多年前写的一个ASP.NET网站管理系统,到现在有些公司在用

    多年前写的一个ASP.NET网站管理系统,到现在有些公司在用 今早上接到一个电话,自已多年前写的一个ASP.NET网站管理系统,一个公司在用,出了点问题, 第一点是惊奇,5,6年前的东东,手机号码换了 ...

  8. [No000051]如何去掉word复制过来的文字背景色?

    我们经常从网上copy一些自己需要的材料到word里.不过常常会把别人的背景色一起拷贝过来.那么如何去掉word复制过来的文字背景色? 方法/步骤 第一步选ctrl+A(全选),找到页面布局→页面边框 ...

  9. 分享一例测试环境下nginx+tomcat的视频业务部署记录

    需求说明:在测试环境下(192.168.1.28)部署一套公司某业务环境,其中:该业务前台访问地址: http://testhehe.wangshibo.com该业务后台访问地址: http://te ...

  10. django复习笔记2:models

    关于models,主要想说的是django shell以及生成测试数据的脚本这两部分. 一个models中的类相当于数据库的一张表,先看一个设置了外键的models. from django.db i ...