【Hotspot】clion调试 openjdk

1.下载oracle-jdk8

在编译 openjdk 时还需要一个 jdk 环境用以引导。

下载网站:

Java Downloads | Oracle

解压:

sudo tar -zxvf jdk-8u351-linux-x64.tar.gz -C /usr/local/jdk8/

环境变量:

vi /etc/profile

export JAVA_HOME=/usr/local/jdk8/jdk1.8.0_351

export JRE_HOME=${JAVA_HOME}/jre                   

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin

验证:

source /etc/profile

java -version

2.下载openjdk8源码

下载链接:

https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-src-b04-14_jan_2020.zip

下载然后解压:

3.编译

安装gcc4.9 g++4.9:

ubuntu20比较新, 编译openjdk8需要安装老版本的编译工具

增加源

deb mirrors.dotsrc.org xenial main

deb mirrors.dotsrc.org xenial universe

sudo vim /etc/apt/sources.list

sudo apt update

安装

sudo apt-get install gcc-4.9

sudo apt-get install g++-4.9

配置多版本gcc控制

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 50

sudo update-alternatives --config gcc

下载依赖:

sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libfreetype6-dev ccache

sudo apt-get install build-essential gawk m4 libasound2-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif-common ant

修改部分配置:

* 修改hotspot/make/linux/Makefile文件的第232行代码:    

SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4% 5%

* 修改hotspot/make/linux/makefiles/gcc.make文件的第208行代码:    

WARNINGS_ARE_ERRORS = -Wno-all 

* 注释掉随着 jdk/src/solaris/native/java/net下的 PlainDatagramSocketImpl.c 和 PlainSocketImpl.c中映入的头文件(glibc 2.32 的发布,Linux 系统删除了sys/sysctl.h):    

// #include <sys/sysctl.h> 

给源码目录权限:

sudo chmod 777 -R openjdk

生成编译配置:

cd openjdk

./configure --with-target-bits=64 --with-debug-level=slowdebug --with-boot-jdk=/usr/local/jdk8/jdk1.8.0_351 --with-jvm-variants=server --with-extra-cflags=-Wno-all --with-extra-cxxflags=-Wno-all

编译:

export DISABLE_HOTSPOT_OS_VERSION_CHECK=ok

make all

编译完成:

编译完成后源码目录下面会对出一个 buid/linux-x86_64-normal-server-slowdebug 目录,images里面就有 jre 和 jdk 的镜像制品:

验证:

使用编译得到的 images/j2sdk-image/bin/java 可执行文件执行版本查看:

./java -version

新建一个测试目录 debug,创建 Test.java 文件,然后使用编译得到的 javac、java 可执行文件分别就行吧编译和执行:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0x13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值