一、操作系统环境准备:Ubuntu 16.04-Ubuntu 20.04
注意:不要使用高版本(22.04+)的Ubuntu进行编译,会提示
WARNING: You are using gcc older than 4.8
,导致无法成功编译OpenJDK12
本文环境:Windows 11+ VMware Workstation17 + Ubuntu20.04(8C8G 120GB) + Clion2025.2(Linux)
1.1 系统更新与依赖安装
编译 OpenJDK 12 需要依赖编译器、构建工具及系统库,需通过 apt
安装以下包:
# 更新系统包索引
sudo apt update && sudo apt upgrade -y
# 安装编译工具链
sudo apt install -y build-essential autoconf
# 安装依赖库(OpenJDK 编译必需)
sudo apt install -y libfreetype6-dev libcups2-dev \
libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev \
libasound2-dev libffi-dev libfontconfig1-dev ccache unzip zip gdb
1.2 引导JDK安装:
# Ubuntu 20.04
sudo apt install openjdk-11-jdk
# Ubuntu < 20.04
# 执行命令前提:配置AdoptOpenJDK相关设置,详见AdoptOpenJDK官方部署指导
sudo apt install temurin-11-jdk
二、OpenJDK 12 源码获取与编译
2.1 获取 OpenJDK 12 源码
《深入理解JVM虚拟机》使用的版本:https://hg.openjdk.org/jdk/jdk12/
openjdk官网:https://jdk.java.net/archive/
2.2 编译配置(configure):autoconf工具官方文档
# 进入源码目录(根据实际路径调整)
cd openjdk12-src
# 运行 configure 生成 Makefile(调试模式配置)
bash configure \
--enable-ccache \ # 开启缓存
--with-debug-level=slowdebug \ # 调试级别:slowdebug(含最全调试信息,适合源码调试)
--with-jvm-variants=server \ # 仅编译 Server VM(减少编译时间,默认包含 client/server)
--disable-warnings-as-errors \ # 禁用"警告视为错误"(避免因编译器版本导致的警告失败)
2.3 编译源码(make)
配置完成后,执行 make
编译,建议指定并行任务数(jN
,N 为 CPU 核心数×2):
# 启动编译(-j参数指定并行编译线程数,建议设为CPU核心数,可选)
make images -j4
2.4 编译成功
源码目录下生成 build/linux-x86_64-server-slowdebug/jdk
目录,执行以下命令验证:
# 查看编译生成的JDK版本
./build/linux-x86_64-server-fastdebug/jdk/bin/java -version
三、调试环境配置
3.1 CLion 安装配置(Ubuntu端)
CLion官方安装:
sudo snap install clion --classic
自动安装最新版本的CLion(2025.2)
注意:18.04以下版本会报错:
/lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.28' not found (required by /snap/clion/367/jbr/lib/server/libjvm.so)
解决思路:直接更换低版本Clion(2019)或使用20.04版本ubunbtu
3.2 推荐调试环境:Ubuntu20.04+Clion(2025.2)
Ubuntu版本相对来说不太老
可以使用Clion2025.2
四、调试调试
参考:https://blog.csdn.net/qq_43460743/article/details/129202296