初次编译openJDK8

最近开始看《深刻理解Java虚拟机》这一本书,这本书出版的时候Oracle尚未推出JDK8,可是做者在1.5章节中对JDK发展的预测,仍是很准确的,就像他函数式编程,模块化等,当时看到这里的时候就挺佩服做者的高瞻远瞩的,这几点基本上都预测到了,看到这里也让我对这本书有了更多的兴趣。html

第一章的最后就是本身动手编译OpenJDK,JDK7仍是比较久远了,直接来JDK8吧。java

介绍一下环境linux

  • 系统是 centos7
  • Bootstrap JDK 1.8
  • OpenJDK 1.8

由于是头一次编译openjdk,因此选择本身的服务器做为环境。以前我在这台服务器上已经安装过了JDK8,正好就能够用来作个人BootStrap jdk了。(linux安装jdk8就不介绍了。)c++

BootStrap JDK是openjdk的执行jdk,由于openjdk是用java写的,java须要一个环境来运行。编程

以前使用centos

hg clone hg.openjdk.java.net/jdk8u/jdk8u jdk8u服务器

这条命令去下载openjdk,可是后来查了一下 openjdk的目录结构,发现我下的这个跟网上的不同,因而又换了一个。地址是:app

pan.baidu.com/s/1dKrYOlx6… 密码: r653模块化

正确的目录结构以下图: 函数式编程

那么下面去安装所须要的东西。

安装alsa包

yum install alsa-lib-devel

安装cups-devel

yum install cups-devel

安装X相关的库

yum install libX* yum install xrender

安装g++

yum install gcc gcc-c++

安装freetype

yum install freetype

安装ant

yum install ant yum install ccache

安装好后设置环境变量

export JAVA_HOME=/usr/local/java/jdk1.8.0_161

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin


export LANG=C
unset JAVA_HOME
unset CLASSPATH

export ALT_BOOTDIR=/usr/local/java/jdk1.8.0_161
export ANT_HOME=/usr/bin/ant
export ALLOW_DOWNLOADS=true
export USE_PRECOMPILED_HEADER=true
export ARCH_DATA_MODEL=64
export HOTSPOT_BUILD_JOB=6
export ALT_PARALLEL_COMPILE_JOBS=6
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug
复制代码

这是我本身的环境变量。

而后执行configure文件

chmod +x configure ./configure

接着编译

make

第一次编译的时候是用了hg下来的包,怎么编译都不对,到最后都是报错。因而乎换了上面连接里的jdk,第一次编译也是有问题,可是第二次就行了。附图以下。 evernotecid://C6FAA89E-4A5B-44D0-A821-BA0101E2FCEC/appyinxiangcom/11444250/ENResource/p176

那么怎么看是真的编译好了呢? 用java -version 这个命令,而且跟sun jdk对比一下就知道了。 sun jdk: evernotecid://C6FAA89E-4A5B-44D0-A821-BA0101E2FCEC/appyinxiangcom/11444250/ENResource/p174

open jdk: evernotecid://C6FAA89E-4A5B-44D0-A821-BA0101E2FCEC/appyinxiangcom/11444250/ENResource/p175

openJDK到这里就编译好了,它的好处就是能够查看所有的源码,甚至能够添加断点去运行,更方便了咱们研究JVM原理。

参考:

https://www.cnblogs.com/mr-long/p/5841604.html
  https://www.jianshu.com/p/5db1131b3038复制代码
相关文章
相关标签/搜索