Centos下编译JDK
因为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的更多相关文章
- centos下编译安装lnmp
centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...
- centos 下安装jdk、tomcat 以及tomcat无法从外部访问的解决办法
centos 下安装jdk.tomcat 以及tomcat无法从外部访问的解决办法 原创 2014年08月28日 10:24:33 标签: selinux enforce cent 2223 昨天在c ...
- CentOS下配置jdk
CentOS下配置jdk 1.在jdk官网上下载最新版本的jdk 2.将jdk放到相应的位置,使用如下命令来解压. .0_181 /opt/data/ tar -zxf jdk-8u181-linux ...
- Ubuntu/CentOS下编译Nginx最基本参数
Ubuntu/CentOS下编译Nginx安装基本参数,做个记录: groupadd www useradd -g www www ./configure --user=www --group=www ...
- 转:在CentOS下编译安装GCC
转:https://teddysun.com/432.html 在CentOS下编译安装GCC 技术 秋水逸冰 发布于: 2015-09-02 更新于: 2015-09-02 6519 次围观 ...
- CentOS 下编译安装Apache
CentOS 下编译安装Apache 卸载原有的apache 首先从 http://httpd.apache.or 下载apache源码包httpd-2.4.4.tar.gz然后从 http://ap ...
- 【转】Centos下编译升级安装Boost
https://www.xingchenw.cn/article/191 Centos下编译升级安装Boost 首先在官网现在相应的包 https://www.boost.org/users/down ...
- centos下编译安装mysql5.6
CentOS 6.4下编译安装MySQL 5.6.14 参考:http://www.cnblogs.com/xiongpq/p/3384681.html 概述: CentOS 6.4下通过yum安装的 ...
- 2、CentOS下编译安装Python2.7.6(转)
CentOS系统下面Python在升级到2.7.6的时候,没有找到安装包直接安装,只能通过源代码编译的方式来安装Python 2.7.6版本.这篇是编译和安装Python2.7.6的过程记录. Cen ...
随机推荐
- linux创建用户、设置密码、修改用户、删除用户
创建用户.设置密码.修改用户.删除用户:useradd testuser 创建用户testuserpasswd testuser 给已创建的用户testuser设置密码说明:新创建的用户会在/home ...
- 浅谈C++设计模式之抽象工厂(Abstract Factory)
抽象工厂(Abstract Factory)模式是为了提供一系列相关或相互依赖对象的接口.对象创建型模式的一种. 客户Client 抽象工厂接口AbstractFactory 抽象工厂的实现类Conc ...
- IIS7 配合 vs2013内置 LocalDB使用
错误提示: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provide ...
- Java报表工具FineReport常见的数据集报错错误代码和解释
在使用finereport制作报表,若预览发生错误,很多朋友便手忙脚乱不知所措了,其实没什么,只要看懂报错代码和含义,可以很快的排除错误,这里我就分享一下finereport的数据集报错错误代码和解释 ...
- 这回真的是挤时间了-PHP基础(三)
hi 刚看了唐人街探案,5星好评啊亲.由于是早就约好的,也不好推辞(虽然是和男的..),但该写的还是得挤时间写.明天早上老师的项目结题,虽然和我关系不大,但不要添乱就好!! 1.PHP 一.PHP基 ...
- CF 407B Long Path[观察性质 DP]
B. Long Path time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- for循环与for循环嵌套
今天温习了下分支语句跟for循环,主要讲解了for循环嵌套,这里开始有点迷糊了,整理下思路在做练习 for循环嵌套用我自己的大白话来说就是一个外圈的for程序里面一个套着一个小的for程序,如果在范围 ...
- u3d_shader_surface_shader_1
http://docs.unity3d.com/Manual/SL-SurfaceShaders.html 一:surface shader是啥 Writing shaders that intera ...
- [No000053]我25岁了,是应该继续挣钱,还是选择自己的爱好?--正好庆祝自己25岁生日
你所问的问题正是问题所在.停止做出重大决策,专注于缩小你想到达的地位与你之间的差距. 成功的生活并非由简单而鲜明的决定组成,它们更像这幅图: 但悲伤的是,太多人的状态类似于这幅图: 我知道这听上去很显 ...
- [No000045]最好的休息,不是睡觉!
导读 有人曾说,累,一定是你打开生活的方式不对.细细揣摩,很有道理,在这个世上,从来都是微笑不累,生气累:单纯不累,复杂累:相思不累,单恋累:相守不累,独守累:相爱不累,相残累:专情不累,滥情累:友情 ...