OpenJDK8 源码编译 运行 调试
感谢小童的对象在学习期间给予极大的帮助和鼓励,笔芯!
文章目录
准备
- ubuntu 16.04
- OpenJDK7
- OpenJDK8 源码
- VM
- Clion
编译参考OpenJDK8所下载的README-builds.html
。
编译OpenJDK8需要提前有8以前的Java环境,所以下载了OpenJDK7。原文Building JDK 8 requires use of a version of JDK 7 that is at Update 7 or newer. JDK 8 developers should not use JDK 8 as the boot JDK, to ensure that JDK 8 dependencies are not introduced into the parts of the system that are built with JDK 7.
配置Ubuntu
-
下载VM
https://my.vmware.com/cn/web/vmware/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/16_0
-
安装VM
-
下载ubuntu
https://releases.ubuntu.com/16.04.7/ubuntu-16.04.7-desktop-amd64.iso
-
创建ubuntu操作系统
-
更换ubuntu的源为阿里云的源
- 安装编辑软件
sudo apt-get install vim
配置OpenJDK7
sudo vim /etc/profile
#打开文件后 添加以下语句
#OpenJDK7解压后的文件路径
export JAVA_HOME=/home/ubuntu/jdk7
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
#退出文件后 运行以下命令
source /etc/profile
#验证是否配置成功
java -version
安装 编译OpenJDK8 所需依赖
- 解压OpenJDK8源码
- 进入解压目录下
- 打开命令行
- 安装以下依赖
sudo apt install \
libx11-dev \
libxext-dev \
libxrender-dev \
libxtst-dev \
libxt-dev \
libcups2-dev \
libfreetype6-dev \
libasound2-dev \
libfontconfig1-dev
5.检查并生成配置文件
# 此命令为编译jdk非debug模式
bash ./configure
# 若需要debug模式则需要执行以下命令
bash ./configure --with-target-bits=64 --with-debug-level=slowdebug --debug-configure
# 可查看help 查看相关参数
bash ./configure --help
并按照提示安装所需的依赖sudo apt-get install ccache
安装完后再检查一遍
编译OpenJDK8
- 检查语言
#输出语言,若不是C则改成C
echo $LANG
zh_CN.UTF-8
#修改命令:
export LANG=C
- 检查JAVA_HOME
#输出JAVA_HOME
echo $JAVA_HOME
#看下输出,如果有值则需要unset JAVA_HOME
unset JAVA_HOME
- 开始编译
sudo make CONF=linux-x86_64-normal-server-slowdebug
会出现以下问题
4. 问题解决方法
# hotspot/make/linux/Makefile 文件 SUPPORTED_OS_VERSION 后面添加4%
SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%
# 重新编译
sudo make CONF=linux-x86_64-normal-server-slowdebug
- 编译成功
安装Clion
- 下载并解压安装包并进入bin文件夹
- 打开命令行
./clion.sh
- 根据提示安装
- 安装完毕
运行调试OpenJDK8项目
- 用Clion选择解压的文件打开项目
- 创建启动应用–编译阶段
- 在根目录下创建Test.java 并运行编译生成Test.class
- 解压调试文件
# 进入/openjdk/build/linux-x86_64-normal-server-slowdebug/jdk/lib/amd64/server
sudo unzip libjvm.diz
-
可在编译阶段调试源码
-
创建启动应用–运行阶段
与编译阶段基本一致,以下是不同的地方
-
运行阶段调试方式与编译阶段一致
大功告成!!