Linux下编译并且调试OpenJDK12

前言:建议尽量在Linux或者MacOS上构建OpenJDK,这两个系统在准备构建工具链和依赖项上比Windows上容易的多。此次我在VMware workstation pro 15虚拟机中安装Ubuntu 18.04 LTS为平台构建。官方文档要求编译OpenJDK至少2~4GB的内存空间,至少6~8GB的空闲磁盘空间。本人建议虚拟机分配至少30GB磁盘空间。因为我编译完JDK和构建编译环境还有安装CLion编辑器已经用了25GB磁盘空间了。另外编译比较耗时,本人虚拟机配置8线程16GB内存编译完成用了四十分钟。读者可根据自己的硬件配置虚拟机。

接下来话不多说,开始了

1.第一步,下载OpenJDK源码

https://hg.openjdk.java.net/jdk/jdk12  

    1.第一步进入网站,点击左遍菜单中的“Browse",第二部点击"zip",此时默认代码下载到/home/user/Downloads/目录下面。
 

2.执行解压命令

tar zxvf jdk12-06222165c35f

2.第二步,构建编译环境

    1.安装GCC命令

sudo apt-get install build-essential

     2.安装若干第三方库

sudo apt-get install libfreetype6-dev
sudo apt-get install libcups2-dev
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev
sudo apt-get install libasound2-dev
sudo apt-get install libffi-dev
sudo apt-get install autoconf

注意:编译大版本号为N的JDK我们还需要令外准备一个大版本号至少为N-1的已经编译好的编译器可用的JDK。编译OpenJDK12时必须使用JDK11及之后的版本。

   3.安装OpenJDK11

sudo apt-get install openjdk-11-jdk

3.第三步,进行编译

   1.编译FastDebug版 仅含Server模式的HotSpot虚拟机命令为:(进入/home/user/Downloads/jdk12-06222165c35f目录下执行)

bash configure --enable-debug --with-jvm-variants=server

      如果编译工程中工具链或依赖项有缺失,执行命令后会得到明确提示,并且会给出该依赖的安装命令。安装过程中可能会遇到

"sudo apt-get install libfontconfig-dev"的命令,复制它回车,再把”bash configure --enable-debug --with-jvm-variants=server“命令重新执行一遍。

注:编译比较耗时,本人虚拟机配置8线程16GB内存编译完成用了四十分钟。

编译完成后进入OpenJDK源码的"build/"配置下的"/jdk"就是编译后的完整结果了。

  2.为编译好的OpenJDK12配置环境变量

sudo vi etc/profile

在profile文件末尾加上 注:export JAVA_HOME=/home/kai/.....中的kai是我的计算机用户名,读之根据自己的用户名更改

export JAVA_HOME=/home/kai/Downloads/jdk12-06222165c35f/build/linux-x86_64-server-fastdebug/jdk

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

保存退出。

执行命令使之生效

source profile

3.在/home/kai/Downloads/jdk12-06222165c35f/build/linux-x86_64-server-fastdebug/jdk目录下执行以下以下命令,可查看编译好的JDK版本。

./java -version

4.第四步,在CLion中调试OpenJDK源码

       1.去JB公司官网下载CLion,此时默认代码下载到/home/user/Downloads/目录下面。

        https://www.jetbrains.com/clion/download/#section=linux

       2.执行解压命令

tar zxvf CLion-2019.3.2.tar.gz

    3.在/home/kai/Downloads/jdk12-06222165c35f目录下建立CMakeLists.txt文件

cd home/kai/Downloads/jdk12-06222165c35f
vi CMakeLists.txt

粘贴

cmake_minimum_required(VERSION 3.15.3)

project(jdk12-06222165c35f)

file(GLOB_RECURSE SOURCE_FILES "*.cpp" "*.hpp" "*.c" "*.h")

add_executable(jdk12-06222165c35f ${SOURCE_FILES})

保存退出。

4.打开CLion导入OpenJDK源码

cd home/kai/Downloads/clion-2019.3.2/bin
./clion.sh

 

选择"New Cmake Projece from Sources"

点击ok,进入主页面。

在Run/Debug Configurations中增加一个CMake Appliaction   Executable选择的是/home/kai/Downloads/jdk12-06222165c35f/build/linux-x86_64-server-fastdebug/jdk/bin/java ,运行参数-version,再把Before lunch里面的Build去掉,就可以调试了。

配置完成后HotSpot启动执行入口是java.c的JavaMain()方法,读者可以断点调试。

至此 ,成功!

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值