下载 openjdk8 源码
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u
cd jdk8u;sh get_source.sh
注意
由于网络问题,好几次没有clone成功.导致编译失败.后来用搬瓦工的vps下载jdk8u压缩后.scp到本地在编译的.
编译
1. 环境
ubuntu 16.04
unset JAVA_HOME
unset CLASSPATH
安装依赖库
sudo apt-get install -y build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libfreetype6-dev libasound2-dev ccache
下载jdk7作为 bootjdk 使用
2. config
编译 fast-debug 模式
sh ./configure --with-boot-jdk=/opt/jdk1.7.0_80/ --enable-debug
或
sh configure --with-debug-level=fastdebug --with-boot-jdk=/opt/jdk1.7.0_80/
编译 slowdebug 模式(有更多的调试信息)
sh configure --with-debug-level=slowdebug --with-boot-jdk=/opt/jdk1.7.0_80/
遇到缺库直接apt
输出:
A new configuration has been successfully created in
/home/twj/code/dev/jdk8u/build/linux-x86_64-normal-server-slowdebug
using configure arguments '--with-debug-level=slowdebug --with-boot-jdk=/opt/jdk1.7.0_80/'.
Configuration summary:
* Debug level: slowdebug
* JDK variant: normal
* JVM variants: server
* OpenJDK target: OS: linux, CPU architecture: x86, address length: 64
Tools summary:
* Boot JDK: java version "1.7.0_80" Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode) (at /opt/jdk1.7.0_80)
* C Compiler: gcc-5 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 version 5.4.0 (at /usr/bin/gcc-5)
* C++ Compiler: g++-5 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 version 5.4.0 (at /usr/bin/g++-5)
Build performance summary:
* Cores to use: 4
* Memory limit: 7802 MB
* ccache status: installed, but disabled (version older than 3.1.4)
WARNING: The result of this configuration has overridden an older
configuration. You *should* run 'make clean' to make sure you get a
proper build. Failure to do so might result in strange build problems.
3. 编译
make all CONF=linux-x86_64-normal-server-slowdebug
CONF 可以不指定 如果只config过一种模式(slowdebug 或 fast-debug)
4. 完成
检测
./java -version
openjdk version "1.8.0-internal-debug"
OpenJDK Runtime Environment (build 1.8.0-internal-debug-tj_2017_06_20_22_31-b00)
OpenJDK 64-Bit Server VM (build 25.71-b00-debug, mixed mode)