Eclipse OpenJ9 项目构建指南:OpenJDK 21 版本详解

Eclipse OpenJ9 项目构建指南:OpenJDK 21 版本详解

openj9 Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo. openj9 项目地址: https://gitcode.com/gh_mirrors/op/openj9

前言

本文将详细介绍如何在主流操作系统平台上构建基于 OpenJDK 21 和 Eclipse OpenJ9 虚拟机的 Java 开发工具包。Eclipse OpenJ9 是 IBM 贡献给 Eclipse 基金会的高性能 JVM 实现,具有内存占用小、启动速度快等特点。通过本指南,您将掌握从环境准备到最终构建的全过程。

构建环境概述

构建 OpenJDK 21 with OpenJ9 支持以下平台:

  1. Linux (x86-64, Power, z Systems)
  2. AIX (7.2+)
  3. Windows
  4. macOS
  5. AArch64

每种平台的构建流程大体相似,但存在一些平台特定的配置要求。下面我们将重点介绍 Linux 和 AIX 平台的详细构建步骤。

Linux 平台构建指南

1. 系统准备

使用 Docker 构建(推荐)

Docker 提供了最便捷的构建环境配置方式:

  1. 安装 Docker 社区版
  2. 执行以下命令构建 Docker 镜像:
bash mkdocker.sh --tag=openjdk21-openj9 --dist=ubuntu --version=22 --gitcache=no --jdk=21 --build
  1. 启动容器并映射主机目录:
docker run -v /host/path:/container/path -it openjdk21-openj9
不使用 Docker 构建
  1. 安装必要的依赖包:
sudo apt-get update && sudo apt-get install -y build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libfontconfig1-dev libasound2-dev
  1. 设置编译器版本:
export CC=gcc-11 CXX=g++-11
  1. 准备引导 JDK:
wget -O bootjdk21.tar.gz "最新OpenJDK21下载URL"
tar -xzf bootjdk21.tar.gz
mv jdk-21 bootjdk21

2. 获取源代码

  1. 克隆 OpenJDK 21 源码:
git clone https://github.com/ibmruntimes/openj9-openjdk-jdk21.git
cd openj9-openjdk-jdk21
  1. 获取 OpenJ9 和 OMR 源码:
bash get_source.sh

OpenSSL 支持说明:如需 OpenSSL 支持,可添加 -openssl-branch=openssl-3.0.x 参数

3. 配置构建环境

执行配置命令:

bash configure --with-boot-jdk=/path/to/bootjdk21

关键配置选项:

  • --with-noncompressedrefs:控制引用压缩方式
  • --with-openssl:指定 OpenSSL 支持方式
  • --enable-openssl-bundling:包含 OpenSSL 加密库

4. 执行构建

完整构建命令:

make all

构建产物位于:

  • JDK:build/linux-x86_64-server-release/images/jdk
  • JRE:build/linux-x86_64-server-release/images/jre(需执行 make legacy-jre-image

5. 验证构建

运行以下命令验证:

./build/linux-x86_64-server-release/images/jdk/bin/java -version

AIX 平台构建指南

1. 系统准备

  1. 安装必需软件包:
    • IBM XL C/C++ 16
    • x11.adt.ext
  2. 通过 yum 安装依赖:
yum shell yum_install_aix-ppc64.txt
  1. 下载引导 JDK

2. 获取源代码

与 Linux 平台相同:

git clone https://github.com/ibmruntimes/openj9-openjdk-jdk21.git
cd openj9-openjdk-jdk21
bash get_source.sh

3. 配置构建环境

AIX 特定配置:

bash configure \
    --with-boot-jdk=/path/to/bootjdk21 \
    --with-cups-include=/opt/freeware/include \
    --disable-warnings-as-errors

4. 执行构建

make all

构建产物位于 build/aix-ppc64-server-release/images/jdk

构建选项详解

引用压缩配置

OpenJ9 提供了灵活的引用压缩选项:

  • 混合模式(默认):运行时选择压缩或非压缩引用
  • 仅压缩引用:--with-noncompressedrefs=no
  • 仅非压缩引用:--with-noncompressedrefs

OpenSSL 集成

支持三种集成方式:

  1. 自动下载构建:--with-openssl=fetched
  2. 使用系统库:--with-openssl=system
  3. 指定自定义路径:--with-openssl=/path/to/openssl

如需捆绑 OpenSSL 加密库,需添加 --enable-openssl-bundling 选项。

构建产物说明

完整的构建将生成以下内容:

  1. JDK 完整开发套件
  2. JRE 运行时环境(需单独构建)
  3. Debug 镜像(用于原生调试)
  4. Test 镜像(包含测试所需库)

常见问题解决

  1. 构建失败:确保所有依赖项已正确安装,检查编译器版本
  2. OpenSSL 问题:确认指定了正确的 OpenSSL 版本和路径
  3. 内存不足:大型构建可能需要增加系统交换空间

结语

通过本指南,您应该已经掌握了在 Linux 和 AIX 平台上构建 OpenJDK 21 with OpenJ9 的完整流程。OpenJ9 作为一款高性能 JVM,其构建过程虽然复杂但值得投入时间掌握。建议首次构建时使用 Docker 方式以简化环境配置,待熟悉流程后再尝试原生系统构建。

构建过程中如遇问题,可参考详细的构建日志,通常位于 build/configure.log 和具体构建目录中。

openj9 Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo. openj9 项目地址: https://gitcode.com/gh_mirrors/op/openj9

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

傅尉艺Maggie

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

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

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

打赏作者

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

抵扣说明:

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

余额充值