
本文详细指导初学者在 linux 环境下基于 docker 构建 jetbrains runtime 的 jbr21 分支,涵盖克隆仓库、配置构建环境、运行容器及编译生成可执行 jdk 镜像的完整流程。
本文详细指导初学者在 linux 环境下基于 docker 构建 jetbrains runtime 的 jbr21 分支,涵盖克隆仓库、配置构建环境、运行容器及编译生成可执行 jdk 镜像的完整流程。
JetBrains Runtime(JBR)是 JetBrains 定制优化的 OpenJDK 发行版,广泛用于 IntelliJ IDEA、PyCharm 等 IDE 中。若需启用实验性特性(如原生 Wayland 支持),或进行深度定制与调试,直接从源码构建 JBR 是必要步骤。本文以 jbr21 分支为例,提供清晰、可复现的构建指南,特别适配无经验开发者。
✅ 基础准备:克隆与切换分支
首先获取官方仓库并检出目标分支(此处为 jbr21):
git clone https://github.com/JetBrains/JetBrainsRuntime.git cd JetBrainsRuntime git checkout jbr21
⚠️ 注意:确保已安装 Git 和 Docker(v20.10+),且当前用户属于
docker用户组,避免权限问题。
? 构建环境:使用 Docker 容器(推荐新手)
JBR 官方强烈建议使用其预置的 Docker 构建环境,以规避宿主机依赖(如特定版本的 autoconf、freetype、alsa-lib 等)不兼容问题。进入项目内建的 Docker 目录并构建镜像:
cd jb/project/docker docker build -t jbr-build-env .
构建成功后,启动交互式容器,并将当前仓库目录挂载至容器内 /JetBrainsRuntime 路径:
docker run -v "$(pwd)/../../../..:/JetBrainsRuntime" -it jbr-build-env
? 提示:
$(pwd)/../../../..是从jb/project/docker/回溯到仓库根目录的相对路径;你也可用绝对路径(如-v /path/to/JetBrainsRuntime:/JetBrainsRuntime)提升可读性。
⚙️ 配置与编译:三步完成构建
在容器内执行以下命令:
cd /JetBrainsRuntime sh ./configure make images CONF=linux-x86_64-normal-server-release
-
./configure会自动检测环境并生成构建配置(build/linux-x86_64-normal-server-release目录); -
make images触发完整编译,最终产物位于build/linux-x86_64-normal-server-release/images/jdk—— 这是一个功能完备的 JDK 21 运行时,含java、javac及 JetBrains 特有模块(如jfr,awt优化、Wayland 后端等)。
✅ 编译成功后,可立即验证:
build/linux-x86_64-normal-server-release/images/jdk/bin/java -version # 输出示例:openjdk version "21.0.1" 2023-10-17 # OpenJDK Runtime Environment JBR-21.0.1.13-1125.19 (build 21.0.1+13-b1125.19) # OpenJDK 64-Bit Server VM JBR-21.0.1.13-1125.19 (build 21.0.1+13-b1125.19, mixed mode)
? 注意事项与常见问题
-
磁盘空间:完整构建需 ≥15 GB 空闲空间(Docker 层 + 编译中间文件);建议清理旧镜像:
docker system prune -a; -
构建耗时:首次编译约需 20–40 分钟(取决于 CPU 核心数与 SSD 性能),可添加
-j$(nproc)加速(如make -j8 images ...); - 非 Docker 方式:如需本地构建,请严格按 官方文档 安装所有系统依赖(Ubuntu/Debian 示例见 README);
-
后续使用:生成的
jdk/目录可直接作为JAVA_HOME使用,或打包为.tar.gz分发给其他机器。
构建完成的 JBR21 即可用于测试 Wayland 支持(启动 IDE 时添加 -Dsun.java2d.xrender=false -Djdk.gtk.version=3 等参数),亦为深入 JVM 调优与平台适配奠定坚实基础。

















