Liunx环境编译调试OpenJDK


前言

作为一个JAVA开发人员,在面试过程中无数次被问到JVM内存模型,垃圾回收机制相关问题(基本都会被虐 因为长久以来JVM对于我来说都是个黑盒 ),要想对这些问题有更深入的了解就得学习下HotSpot源码看看jvm的庐山真面目
开始尝试在Window上编译OpenJDK,尝试几次没有成功,后面就在Liunx系统上编译调试了,这里记录下流程

首先说下编译相关的工具跟JDK

操作系统centos8.5gcc 默认版本是 8.5.0 因为编译的OpenJDK要求gcc版本有点高
jdk11.0.17编译OpenJDK需要一个jdk
OpenJDKopenjdk-jdk-12+13编译OpenJDK需要系统里面配置有JDK一般要低一个版本
Clionclion-2020.3.4C++开发工具

整个编译过程主要有下面几个过程,其中编译过程比较耗时 后面逐步介绍每一步的过程

在这里插入图片描述


一、配置JDK

  1. 上传JDK并解压
    在这里插入图片描述
  2. /etc/profile配置文件中设置JDK环境 执行source /etc/profile 使配置生效
    在这里插入图片描述
    这样系统里面的JDK就设置了11的版本
JAVA_HOME=/home/dlh/jdk-11.0.17
CLASSPATH=$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH

在这里插入图片描述
这里是/etc/profile加的配置

二、编译OpenJDK

前面已经配置好了JDK环境 解析来我们来编译OpenJDK

  1. 上传 OpenJDK 并解压(OpenJDK我是从链接: 码云国内镜像这里下载的,比较快点)

    在这里插入图片描述

  2. 进入OpenJDK 执行./configure 命令
    在这里插入图片描述这里要加上 --disable-warnings-as-errors 目的是不然后面的编译警告导致编译失败
    另外执行这个命令有一个报错 bash: ./configure: Permission denied
    给他赋上执行权限就好了 chmod 777 configure

    加上权限后再执行 configure命令

在这里插入图片描述
还是报错,提升我们要install其它依赖 (那就安装呗~)
在这里插入图片描述
安装提示 执行 yum install autoconf
还是失败 报了这个提示 :

Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

网上找到了答案 具体看这里 Centos8 install失败原因
配置先阿里的镜像再执行install

在这里插入图片描述
配置玩阿里的镜像后再安装前面提示缺的依赖组件

在这里插入图片描述
安装提示install完缺失的组件后出现下面的提示

在这里插入图片描述
这就代表configure命令执行完了

  1. 解析来执行make命令开始编译(make all COMPILER_WARNINGS_FATAL=false)

在这里插入图片描述
编译时间有点长,我这边大概花了50分钟(跟机器配置也有关系)

在这里插入图片描述
在这里插入图片描述可以看到已经有build目录了编译成功

三、Clion调试OpenJDK

接下来 我们用Clion来调试OpenJDK
先上传开发工具到环境上
在这里插入图片描述

打开工具要图形化界面,这个就不能在Xshell上操作了,直接在虚拟机图形化界面操作

进入clion 的bin目录下面 执行启动脚本
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
等项目加载完

断点调试的话需要配置两个地方,这里先贴下最终的调试结果
在这里插入图片描述

有两个地方需要配置(Custom Build Targets 跟 MakeFile Application)

  1. Custom Build Targets 配置(后面的 MakeFile Application 配置要用到)在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

要配置这些 ,下面是配置好

在这里插入图片描述

配置项配置的值
Programmake
ArgumentsCONF=macosx-x86_64-normal-server-slowdebug
Working directoryJDK安装的主目录

保持 ,到这里Target就配置好了

  1. MakeFile Application 配置
    在这里插入图片描述
    在这里插入图片描述
    这里直接贴上前面配置好的截图
    在这里插入图片描述

在这里插入图片描述
在 java.c 文件 JavaMain处打上断点

在这里插入图片描述


进入断点后就可以跟踪调试 了

在这里插入图片描述

让流程跑完 ,控制台打印了正确日志,到此 Liunx编译调试OpenJDK的环境就搭建好了

总结

建议直接在Liunx系统下编译调试 相对Windows系统容易些
另外 搭建调试环境只是深入了解JVM的第一步,要想真正了解JVM底层运行机制 还是得对C、C++有一定的掌握,计算机基础方面的知识也是必不可少的,看起来并不那么容易 慢慢学吧~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值