概述
OpenJ9 是一款由 IBM 开发并开源的 Java 虚拟机(JVM),现由 Eclipse 基金会管理(名为 Eclipse OpenJ9)。它旨在提供高性能、低内存消耗和快速启动时间,特别适用于云原生和容器化环境。
关键特性
-  
低内存占用
优化内存管理,减少堆外内存使用,适合资源受限场景(如微服务、Kubernetes)。 -  
快速启动
通过共享类缓存(Shared Classes Cache)和即时编译(JIT)优化,缩短应用启动时间。 -  
灵活的垃圾回收(GC)
支持多种 GC 策略:- Gencon:分代收集,适合短期对象。
 - Balanced:针对大堆内存优化,减少暂停时间。
 - Metronome:实时应用的低延迟 GC。
 
 -  
AOT(提前编译)
将字节码预编译为本地代码,减少运行时开销。 -  
兼容性
遵循 Java SE 标准,与 HotSpot JVM 兼容,无需修改代码即可切换。 
历史背景
- 源自 IBM 的 J9 VM(用于 IBM Java 产品),2017 年开源并捐赠给 Eclipse 基金会。
 - 与 OpenJDK 结合,形成完整的 Java 运行时(如 AdoptOpenJDK 或 IBM Semeru Runtime)。
 
使用场景
- 云原生应用:容器化部署时节省内存。
 - Serverless 函数:快速启动提升冷启动性能。
 - 长期运行服务:通过 GC 调优降低延迟。
 
这里,我们以OpenJ9 JDK 17为例 ,详细说明一下,如何在Ubuntu 24.04上安装该JDK。
下载
- https://adoptium.net/
 



- jdk-21.0.6+7_openj9-0.49.0-JDK-February 13, 2025
 

- jdk-17.0.14+7_openj9-0.49.0-JDK-February 13, 2025
 

- jdk-11.0.26+4_openj9-0.49.0-JDK-February 13, 2025
 

安装
解压
mkdir -p ~/.local/java/openj9/jdk17
 
lwk@qwfys:~/Downloads/.tmp$ ll -h
total 228M
drwxrwxr-x 2 lwk lwk 4.0K Mar 29 02:08 ./
drwxrwxr-x 9 lwk lwk 4.0K Mar 29 02:08 ../
-rw-rw-r-- 1 lwk lwk 228M Mar 29 01:34 ibm-semeru-certified-jdk_x64_linux_17.0.14.0.tar.gz
lwk@qwfys:~/Downloads/.tmp$
 
tar -zxf ibm-semeru-certified-jdk_x64_linux_17.0.14.0.tar.gz
 
lwk@qwfys:~/Downloads/.tmp$ ll
total 233120
drwxrwxr-x 3 lwk lwk      4096 Mar 29 02:08 ./
drwxrwxr-x 9 lwk lwk      4096 Mar 29 02:08 ../
-rw-rw-r-- 1 lwk lwk 238698266 Mar 29 01:34 ibm-semeru-certified-jdk_x64_linux_17.0.14.0.tar.gz
drwxr-xr-x 9 lwk lwk      4096 Feb  6 02:27 jdk-17.0.14+7/
lwk@qwfys:~/Downloads/.tmp$
 
mv jdk-17.0.14+7 ~/.local/java/openj9/jdk17
 
配置
tee -a ~/.bashrc <<-'EOF'
export JAVA_HOME=/home/lwk/.local/java/openj9/jdk17
export PATH=${JAVA_HOME}/bin:$PATH
EOF
 
查看
lwk@qwfys:~$ java -version
java version "17.0.14" 2025-01-21
IBM Semeru Runtime Certified Edition 17.0.14.0 (build 17.0.14+7)
Eclipse OpenJ9 VM 17.0.14.0 (build openj9-0.49.0, JRE 17 Linux amd64-64-Bit Compressed References 20250121_885 (JIT enabled, AOT enabled)
OpenJ9   - 3c3d179854
OMR      - e49875871
JCL      - 675a4171160 based on jdk-17.0.14+7)
lwk@qwfys:~$ 
 
参考文献
- Adoptium® Marketplace