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版本

转载于:https://www.cnblogs.com/rocky-fang/p/6677921.html

CentOS 编译 openjdk相关推荐

  1. mysql 4.0.27 下载,CentOS编译Mysql 4.0.27数据库问题解决

    CentOS编译Mysql 4.0.27数据库问题解决以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 现在好多人都用起了 ...

  2. centos 编译安装mysql

    centos 编译安装mysql,请看附件 转载于:https://blog.51cto.com/3131854/1883713

  3. 深入理解JVM(一)编译openJDK

    此文总结的很不错:https://www.cnblogs.com/ACFLOOD/p/5528035.html 准备openJDK源码和环境 1.在linux和macOS上编译openJDK更加友好, ...

  4. 编译安装php apache,CentOS编译安装Apache2.4+PHP5.6

    CentOS下YUM安装PHP和Apache是比较简单的,可是一般默认情况下的PHP版本是5.3,Apache版本是2.2.因为考虑到PHP版本和Apache版本越高性能越好,就打算在CentOS下编 ...

  5. 走进JVM之一 自己编译openjdk源码

    想要深入了解JVM,就必须了解其实现机制.了解JVM实现的最好方法便是自己动手编译JDK.好了,让我们开始吧! 1.  准备工作 获取OpenJDK源码 本次编译选择的是OpenJDK7u,官方源码包 ...

  6. CENTOS编译安装APACHE 2.4.6笔记

    之前服务器 Apache 版本一直是 2.2.x,鉴于 Centos 更新软件的惰性,我看直到 2014 年结束,apache 2.4 都不一定会出现在 Centos 中,我是不打算等了,编译安装吧. ...

  7. Centos编译安装Apache 2.4.6笔记 配置

    转载链接:http://www.onepx.com/centos-apache-246.html 之前服务器 Apache 版本一直是 2.2.x,鉴于 Centos 更新软件的惰性,我看直到 201 ...

  8. 使用rust编译linux,在 Ubuntu 上为 CentOS 编译 Rust 程序,

    在 Ubuntu 上为 CentOS 编译 Rust 程序, 现在 CentOS 8 还没出来,最新的是 CentOS 7.6,上面搭载的 glibc 版本是 2.17,都已经是 2012 年那时候的 ...

  9. 菜鸟编译OPenJDK全过程记录

    2019独角兽企业重金招聘Python工程师标准>>> 最近在看周志明的<深入理解java虚拟机>,其中第一章就是讲如何自己编译OpenJDK,根据书中介绍步骤,结合网上 ...

最新文章

  1. PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析
  2. 微软AI要参加IMO竞赛!小目标:数学金牌
  3. 洛谷——P3807 【模板】卢卡斯定理
  4. matplotlib.pyplot_Matplotlib Pyplot教程
  5. vpr文件转换flac_关于便携播放器音频格式转换的问题
  6. Leet Code OJ 7. Reverse Integer [Difficulty: Easy]
  7. 94年的博士后又拿到了这个金奖!原来是他的学弟
  8. Ubuntu 装机必备设置与软件安装
  9. 无法连接iphone软件更新服务器_上海腾科教育今日分享——提示“无法连接到服务器”的解决办法...
  10. Git基础操作及常见命令——详解
  11. 【转】JMeter学习(二十八)内存溢出解决方法
  12. java 下一代_Java 下一代: 混入和特征
  13. OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法
  14. mysql主从 副本集,MongoDB的主从、副本集模式
  15. Delphi运行期错误
  16. Python读写Excel实现大量数据处理
  17. 解决mac休眠睡眠异常耗电方法
  18. 《激活个体》读书笔记
  19. matlab中欠定方程组超定方程组_生辰八字中天干与地支是什么
  20. 《痞子衡嵌入式半月刊》 第 21 期

热门文章

  1. Python-Numpy(3)矩阵基本操作
  2. Input.GetTouch 获取触摸
  3. nginx怎么部署php项目,nginx怎么正确部署前端项目
  4. 机器人 瓷砖墙面清洗_瓷砖铺贴注意事项有哪些?
  5. mysql事务的4大特性
  6. 纯内存linux,7、内存知识和Linux基本原则
  7. SpringBoot如何使用策略模式干掉if else
  8. mysql的count报错_mysql的floor()报错注入方法详细分析
  9. android区块链 钱包_区块链研究实验室|从Android调用区块链智能合约
  10. 真厉害用python只要50行代码爬取黑丝美眉纯欲高清图