How to install OpenJ9 JDK 17 on Ubuntu 24.04

news2025/4/1 19:12:26

概述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2324780.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【即插即用涨点模块-卷积】SPDConv空间深度卷积,助力小目标与低分辨有效涨点【附源码+注释】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

全流程剖析需求开发:打造极致贴合用户的产品

全流程剖析需求开发&#xff1a;打造极致贴合用户的产品 一、需求获取&#xff08;一&#xff09;与用户沟通&#xff08;二&#xff09;观察用户工作&#xff08;三&#xff09;收集现有文档 二、需求分析&#xff08;一&#xff09;提炼关键需求&#xff08;二&#xff09;建…

《Python Web网站部署应知应会》No4:基于Flask的调用AI大模型的高性能博客网站的设计思路和实战(上)

基于Flask的调用AI大模型的高性能博客网站的设计思路和实战&#xff08;上&#xff09; 摘要 本文详细探讨了一个基于Flask框架的高性能博客系统的设计与实现&#xff0c;该系统集成了本地AI大模型生成内容的功能。我们重点关注如何在高并发、高负载状态下保持系统的高性能和…

STM32_HAL开发环境搭建【Keil(MDK-ARM)、STM32F1xx_DFP、 ST-Link、STM32CubeMX】

安装Keil(MDK-ARM)【集成开发环境IDE】 我们会在Keil(MDK-ARM)上去编写代码、编译代码、烧写代码、调试代码。 Keil(MDK-ARM)的安装方法&#xff1a; 教学视频的第02分03秒开始看。 安装过程中请修改一下下面两个路径&#xff0c;避免占用C盘空间。 Core就是Keil(MDK-ARM)的…

多线程—JUC(java.util.concurrent)

上篇文章&#xff1a; 多线程—synchronized原理https://blog.csdn.net/sniper_fandc/article/details/146713129?fromshareblogdetail&sharetypeblogdetail&sharerId146713129&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目录 1 Calla…

从零开始跑通3DGS教程:(三)坐标系与尺度编辑(CloudCompare)

写在前面 本文内容 本文所属《从零开始跑通3DGS教程》系列文章&#xff1b; sfm重建的点云已经丢掉了尺度信息&#xff0c;并且坐标系跟图像数据有关(SFM初始化选择的图像)&#xff0c;所以如果想恢复物理真实尺度&#xff0c;以及在想要的视角下渲染&#xff0c;那么需要对尺度…

多线程 - 线程安全引入

写一个代码&#xff0c;让主线程创建一个新的线程&#xff0c;由新的线程负责完成一系列的运算&#xff08;比如&#xff1a;1 2 3 ... 1000&#xff09;&#xff0c;再由主线程负责获取到最终结果。 但打印结果为 result 0&#xff0c;略微思考&#xff0c;明白了要让 t 线…

【面试八股】:CAS指令

一、CAS 面试题 1. 说说CAS、CAS有什么问题&#xff08;ABA)?(美团一面&#xff09; Compare And Swap 对比交换&#xff08;原子指令&#xff09; CAS是 CPU指令 操作系统原生 API&#xff0c;JVM对它进行了封装&#xff08;C)&#xff0c;供我们使用。 通过判断 内存 和 …

el-radio-group 中 el-radio-button value未能绑定上数值数据

这样绑定到admin后不会随着admin的值显示 在value加上 : 后成功显示

JSP(实验):带验证码的用户登录

[实验目的] 1&#xff0e;掌握应用request对象获取表单提交的数据。 2&#xff0e;掌握解决获取表单提交数据产生中文乱码的问题。 3&#xff0e;掌握使用response对象进行定时跳转功能。 4&#xff0e;掌握使用session对象完成登录和注销功能。 [实验要求] 设计带验证码…

集多功能为一体的软件,支持批量操作。

今天我给大家分享一个超实用的小工具&#xff0c;真的是太好用了&#xff01;这个软件是吾爱大神无知灰灰制作的&#xff0c;它能直接一键把webp格式的图片转换成png格式。 webp转为png 一键操作&#xff0c;支持压缩 其实&#xff0c;作者最近在工作中经常遇到webp格式的图片…

linux压缩指令

今天我们来了解一下linux压缩指令,压缩是我们文件传输的一种重要手段,对此,我们是必须学习压缩指令的,那么话不多说,来看. 1.grep过滤查找&#xff0c;管道符&#xff0c;“&#xff5c;”&#xff0c;表示将前一个命令的处理结果输出传递给后面的命令处理。 基本语法&#x…

污水处理厂人员定位方案-UWB免布线高精度定位

1. 方案概述 本方案采用免布线UWB基站与北斗卫星定位融合技术&#xff0c;结合UWBGNSS双模定位工卡&#xff0c;实现污水处理厂室内外人员高精度定位&#xff08;亚米级&#xff09;。系统通过低功耗4G传输数据&#xff0c;支持实时位置监控、电子围栏、聚集预警、轨迹回放等功…

Elasticsearch 高级

Elasticsearch 高级 建议阅读顺序&#xff1a; Elasticsearch 入门Elasticsearch 搜索Elasticsearch 搜索高级Elasticsearch高级&#xff08;本文&#xff09; 1. nested 类型 1.1 介绍 Elasticsearch 中的 nested 类型允许你在文档内存储复杂的数据结构&#xff0c;比如一个…

C语言笔记数据结构(链表)

希望文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正,一起交流学习! 目录 1.链表 1.1 链表概念和组成 1.2 链表的分类 1.3 顺序表和链表 2.单链表&#xff08;无头单向不循环链表&#xff09; 2.1 结点的创建 2.2 创建新的结点 2.3 单链表的打印 2.4 尾…

Leetcode 两数相除

✅ LeetCode 29. 两数相除 — 思路总览 &#x1f9e9; 题目要求 给定两个整数 dividend 和 divisor&#xff0c;实现 整数除法&#xff0c;不能使用乘法 *、除法 / 和取余 % 运算符。 要求返回的结果应为 向零截断的整数商&#xff0c;即&#xff1a; 正数向下取整&#xf…

人工智能图像识别Scala介绍

Scala 一.Scala 简介 Scala即Scalable Language&#xff08;可伸缩的语言&#xff09;&#xff0c;Scala 语言是由 Martin Odersky 等人在 2003 年开发的&#xff0c;并于 2004 年首次发布。意味着这种语言设计上支持大规模软件开发&#xff0c;是一门多范式的编程语言。 Sc…

C++中使用CopyFromRecordset将记录集拷贝到excel中时,如果记录集为0个,函数崩溃,是什么原因

文章目录 原因分析解决方案1. 检查记录集是否为空2. 安全调用COM方法3.进行异常捕获4. 替代方案&#xff1a;手动处理空数据 总结 在C中使用CopyFromRecordset将空记录集&#xff08;0条记录&#xff09;复制到Excel时崩溃的原因及解决方法如下&#xff1a; 原因分析 空记录集…

c#的.Net Framework 的console 项目找不到System.Window.Forms 引用

首先确保是建立的.Net Framework 的console 项目,然后天健reference 应用找不到System.Windows.Forms 引用 打开对应的csproj 文件 在第一个PropertyGroup下添加 <UseWindowsForms>true</UseWindowsForms> 然后在第一个ItemGroup 下添加 <Reference Incl…

蓝桥杯嵌入式学习笔记

用博客来记录一下参加蓝桥杯嵌入式第十六届省赛的学习经历 工具环境准备cubemx配置外部高速时钟使能设置串口时钟配置项目配置 keil配置烧录方式注意代码规范头文件配置 模块ledcubemx配置keil代码实现点亮一只灯实现具体操作的灯&#xff0c;以及点亮还是熄灭 按键cubemx配置k…