如何确保JDK版本与操作系统架构匹配?

1. 序言

  • 最近的工作中,需要升级JDK版本到17.0.7+,以解决一个JDK bug:JDK-8299626
  • 该bug的core dump关键字如下:
    SIGSEGV in PhaseIdealLoop::build_loop_late_post_work
    
  • 公司JDK团队提供的、包含JDK的基础镜像,有aarch64x86_64之分
  • 因此,问题来了:根据宿主机的操作系统架构,应该选择哪个基础镜像?

2. 通过操作系统架构,选择合适的JDK版本

  • 首先,根据不同的操作系统,使用不同方式确定系统架构
  • 例如,对Linux或mac OS,使用uname -m查看系统架构。不同返回值的含义如下:
    • x86: 32 位 x86 架构(例如,Intel Pentium、AMD Athlon 等)
    • x86_64: 64 位 x86 架构,也称为 AMD64 或 Intel 64 (例如,Intel Core 2 Duo、AMD Opteron 等)
    • ia64: 64 位 Itanium 架构
    • sparc: SPARC 架构(适用于 Solaris 操作系统)
    • arm: ARM 架构
    • aarch64: ARM 64 位架构
  • 接着,如果是在社区下载open JDK,则可以根据系统架构,选择对应的JDK
  • 例如,mac OS执行返回的架构信息如下,则在下载jdk-17.0.9+9时,选择OpenJDK17U-jdk_aarch64_mac_hotspot_17.0.9_9.tar.gzOpenJDK17U-jdk_aarch64_mac_hotspot_17.0.9_9.pkg

在这里插入图片描述

3. 若JDK已安装,如何验证安装的版本是否与操作系统架构匹配?

方法1:查看JDK release文件

  • 找到JDK的安装目录,也就是环境变量JAVA_HOME的值

    # linux系统
    export | grep "JAVA_HOME"
    
  • 进入JDK安装目录,查看release文件

    # linux系统
    cat release
    
  • OS_ARCH是否与操作系统架构匹配 —— 注意: OS_ARCH 是指 Java 运行时环境(JRE)的操作系统架构,而不是指操作系统本身的架构
    在这里插入图片描述

方法2:使用命令 java -XshowSettings:properties -version

  • 使用命令 java -XshowSettings:properties -version,其打印的os.arch更加具体,比如x86_64可以显示是amd64还是Intel 64
    在这里插入图片描述
  • 疑问: release中显示x86_64,而这里显示amd64。难道一个是JDK的系统架构,一个是操作系统本身的架构?欢迎大佬指点、交流
  • 笔者目前认为:二者都是JDK的系统架构,只是java -XshowSettings:properties -version将x86_64架构具体到了amd64,以表明当前JDK可以适应adm64的操作系统架构

方法3:使用公司自创命令cat current_revision (不具有普遍性)

  • 同样地,找到JDK的安装目录,然后执行cat current_revision
    在这里插入图片描述
  • 仔细查看该命令的输出后,笔者认为这应该是公司自创的命令,可能对大多数JDK并不通用

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

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

相关文章

Hololens2开发环境配置及项目生成部署

Hololens2开发环境配置及项目生成部署 Hololens2开发环境配置及项目生成部署一、官方文档及推荐配置说明1.官方文档介绍2.推荐配置及配置说明 二、安装步骤0.现有Visual Stuido和Unity卸载1.Windows SDK安装2.Visual Studio安装3.Unity安装4.MRTK配置 三、初次环境配置1.新建Un…

ABAP - SALV教程05 添加页眉和页脚

先看看效果叭CL_SALV_TABLE提供了SET_TOP_OF_LIST方法设置页眉显示和SET_TOP_OF_LIST_PRINT方法设置页眉打印来实现添加页眉的目的。CL_SALV_TABLE提供了SET_END_OF_LIST方法设置页脚显示和SET_END_OF_LIST_PRINT方法设置页脚打印来实现添加页脚的目的。这个四个方法的传入参数…

STM32F4 HAL库串口死锁问题调试记录

文章目录 STM32F4 HAL库串口死锁问题调试记录调试方法结果分析解决方法一:方法二: STM32F4 HAL库串口死锁问题调试记录 使用方法:通过串口DMA固定周期向外发送数据,同时开启串口DMA接收用于接收其它板卡发来的数据。 问题&#x…

2024年,智慧文旅领航新时代,重塑旅行体验的未来篇章!

随着科技的飞速发展,智慧文旅正成为旅游行业的新宠,以其独特的魅力和无限可能,引领着旅行体验的全面升级。 2024年,智慧文旅火爆出圈,成为各界关注的焦点,为游客带来了前所未有的震撼与享受。 智慧文旅&a…

《猛兽派对》好玩吗值得买吗?苹果电脑也能装《猛兽派对》吗?猛兽派对好友通行证 动物派对 猛兽对战游戏

目录 一、《猛兽派对》好玩吗? 游戏玩法: 物理引擎: 关卡设计: 游戏特色: 评价: 荣誉: 二、苹果电脑也能装《猛兽派对》吗? 第1步:下载并安装CrossOver这款软件…

C语言---文件操作(1)

1.文件的打开和关闭 fopen有2个参数,第一个是文件的名字,第二个是打开的模式(例如是读文件还是写文件) (1)该文件夹下面没有data.txt文件,但是我执行了read操作,所以会显示这样的错误 (2&#…

ApplicationContext容器

ApplicationContext容器 1.概述 ApplicationContext接口代表了一个Spring容器,它主要负责实例化、配置和组装bean。ApplicationContext接口间接继承了BeanFactory接口,相较于BeanFactory一些基本的容器功能,ApplicationContext接口是在BeanFactory接口基础上进行了扩展,增…

SQL 术语:Join 中的 Build 和 Probe 是什么意思?

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…

如何在Vue中实现事件处理?

Vue是一种流行的JavaScript框架,广泛应用于前端开发。在Vue中,事件处理是一个非常关键的概念,可以帮助我们实现用户与页面的交互,今天我们就来探讨一下如何在Vue中实现事件处理。 首先,让我们先了解一下在Vue中如何绑…

[pdf]《软件方法》强化自测题业务建模需求分析共191页,230题

潘加宇《软件方法》强化自测题业务建模需求分析共191页,230题,已上传CSDN资源。 在完成书中自测题基础上,进一步强化。 也可到以下地址下载: 资料http://www.umlchina.com/url/quizad.html 如果需要网盘提取码:uml…

【Python】1. 背景知识

认识 Python 计算机基础概念 什么是计算机? 很多老一辈的人, 管下面这个叫做计算机. 然鹅, 它只是 “计算器”, 和计算机是有很大区别的. 现在我们所说的计算机, 不光能进行算术运算, 还能进行逻辑判断, 数据存储, 网络通信等等功能,。 以至于可以自动的完成非常复杂的工作…

代码随想录day10(2)字符串:反转字符串Ⅱ (leetcode541)

题目要求:给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前…

Zookeeper4:Java客户端、应用场景以及实现、第三方客户端curator工具包

文章目录 Java连接Zookeeper服务端依赖代码使用 应用场景统一命名服务统一配置管理统一集群管理服务器节点动态上下线理解实现模拟服务提供者【客户端代码】-注册服务模拟服务消费者【客户端代码】-获取服务信息进行请求消费 软负载均衡分布式锁理解实现 生产集群安装N台机器合…

Java中的Collection

Collection Collection 集合概述和使用 Collection集合概述 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素 JDK 不提供此接口的任何直接实现.它提供更具体的子接口(如Set和List)实现 创建Collection集合的对象 多态的方式 具体的实现类ArrayList C…

MATLAB环境下基于熵的声纳图像分割算法

声纳图像作为准确获取水下信息的重要途径之一,在国防、军事、工程等方面发挥着巨大作用。然而,由于水声信道的复杂多变和声波本身的传播损失,声纳图像往往呈现出分辨率和对比度不高、噪声干扰严重、目标轮廓模糊等特点。 声纳图像的分割指的…

FCIS 2023网络安全创新大会:洞察前沿技术,探索安全新境界(附大会核心PPT下载)

随着信息技术的飞速发展,网络安全问题日益凸显,成为全球关注的焦点。作为网络安全领域的重要盛会,FCIS 2023网络安全创新大会如期而至,汇聚了全球网络安全领域的顶尖专家、学者、企业家和政策制定者,共同探讨网络安全的…

ABAP - SALV教程10 添加可编辑checkbox列

几乎所有的功能报表都会有那么一个选择列,问了业务顾问,业务顾问说是用户不习惯使用报表原生的选择模式。效果图SALV的选择列是通过将列设置成checkbox_hotspot样式,注册单击事件完成勾选功能的。完成步骤 将SEL列设置成checkbox_hotspot样式…

【笔记】OpenHarmony和HarmonyOS区别及应用开发简介

一、概念 OpenHarmony(OH) : OpenAtom OpenHarmonyHarmonyOS(HO):开发 | 华为开发者联盟 (huawei.com) HO当前最高是3.1,在华为mate 60上面也是。关于4.0、5.0和next这类版本说法都是面向用户的,不是开发人员。对于程序员&#…

Springboot 项目读取yaml的配置文件信息给静态方法使用,以及通过配置 ResourceBundle 类读取config.properties

读取yaml 的配置文件 配置文件信息 iot_saas_tenement:user_id: 7........8d9bprivate_key: MII.......qQbj_url: http://4.....5:8088project_name: iot_s.......rojectdevice_name: te.....ice 创建一个类 ProxyProperties 读取配置文件信息,并对外提供get方法 …

内存的检测与排查

内存🐎的检测与排查 文章目录 内存🐎的检测与排查查杀Java Web filter型内存马0x01 内存马简历史0x02 查杀思路0x03 内存马的识别0x04 内存马的查杀 查杀Java Web filter型内存马 0x01 内存马简历史 其实内存马由来已久,早在17年n1nty师傅的…