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

news2024/9/30 15:28:10

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.coloradmin.cn/o/1485154.html

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

相关文章

深入了解Java虚拟机(JVM)

Java虚拟机(JVM)是Java程序运行的核心组件,它负责解释执行Java字节码,并在各种平台上执行。JVM的设计使得Java具有跨平台性,开发人员只需编写一次代码,就可以在任何支持Java的系统上运行。我们刚开始学习Ja…

Launch学习

参考博客: (1) 史上最全的launch的解析来啦,木有之一欧 1 ROS工作空间简介 2 元功能包 src目录下可以包含多个功能包,假设需要使用机器人导航模块,但是这个模块中包含着地图、定位、路径规划等不同的功能包,它们的逻…

【Python】1. 背景知识

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

SLAM基础知识-卡尔曼滤波

前言: 在SLAM系统中,后端优化部分有两大流派。一派是基于马尔科夫性假设的滤波器方法,认为当前时刻的状态只与上一时刻的状态有关。另一派是非线性优化方法,认为当前时刻状态应该结合之前所有时刻的状态一起考虑。 卡尔曼滤波是…

java垃圾回收

垃圾回收 一个对象如果不再使用,需要手动释放,否则就会出现内存泄漏。我们称这种释放对象的过程为垃圾回收,而需要程序员编写代码进行回收的方式为手动回收。 内存泄漏指的是不再使用的对象在系统中未被回收,内存泄漏的积累可能…

LCR 124. 推理二叉树

解题思路&#xff1a; 分治 class Solution {// 一个哈希表用于存储中序遍历中每个值对应的索引&#xff0c;用于快速查找HashMap<Integer,Integer> map new HashMap<>();// 保存前序遍历的结果数组int[] preorder;// 主函数&#xff0c;传入前序和中序遍历的结果…

Vue中的计算属性和方法有什么区别?

Vue.js是一款流行的JavaScript前端框架&#xff0c;提供了丰富的功能和便捷的开发方式。在Vue中&#xff0c;计算属性和方法是常用的两种方式来处理数据和逻辑。但它们之间存在一些区别&#xff0c;本文将详细介绍Vue中计算属性和方法的区别&#xff0c;并通过示例代码加深理解…

UE4c++ ConvertActorsToStaticMesh ConvertProceduralMeshToStaticMesh

UE4c ConvertActorsToStaticMesh 创建Edior模块&#xff08;最好是放Editor模块毕竟是编辑器代码&#xff09;创建蓝图函数UBlueprintFunctionLibraryUTestFunctionLibrary.hUTestFunctionLibrary.cpp:.Build.cs 目标:为了大量生成模型&#xff0c;我们把虚幻带有的方法迁移成函…

一周学会Django5 Python Web开发-Django5详细视图DetailView

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计28条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的停车位检测系统(Python+PySide6界面+训练代码)

摘要&#xff1a;开发停车位检测系统对于优化停车资源管理和提升用户体验至关重要。本篇博客详细介绍了如何利用深度学习构建一个停车位检测系统&#xff0c;并提供了完整的实现代码。该系统基于强大的YOLOv8算法&#xff0c;并结合了YOLOv7、YOLOv6、YOLOv5的性能对比&#xf…

python-分享篇-控制摄像头

文章目录 准备代码效果 准备 安装cv2 pip install opencv-python &#xff08;如果只用主模块&#xff0c;使用这个命令安装&#xff09; pip install opencv-contrib-python &#xff08;如果需要用主模块和contrib模块&#xff0c;使用这个命令安装&#xff09; 我的代码l里…

Vue+SpringBoot打造知识图谱构建系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 知识图谱模块2.2 知识点模块2.3 学生测评模块2.4 学生成绩模块 三、系统展示四、核心代码4.1 查询知识点4.2 新增知识点4.3 查询知识图谱4.4 查询学生成绩4.5 查询学生成绩 五、免责说明 一、摘要 1.1 项目介绍 基于J…

AJAX 学习笔记(Day3)

「写在前面」 本文为黑马程序员 AJAX 教程的学习笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。推荐先按顺序阅读往期内容&#xff1a; 1. AJAX 学习笔记&#xff08;Day1&#xff09; 目录 3 AJAX 原理 3.1 XMLHttpRequest 3…

Stable Video文本生成视频公测地址——Scaling Latent Video Diffusion Models to Large Datasets

近期&#xff0c;Stability AI发布了首个开放视频模型——"Stable Video"&#xff0c;该创新工具能够将文本和图像输入转化为生动的场景&#xff0c;将概念转换成动态影像&#xff0c;生成出电影级别的作品&#xff0c;旨在满足广泛的视频应用需求&#xff0c;包括媒…

为什么要在业务系统中引入大宽表?

在高度系统化驱动的业务中&#xff0c;查看业务报表已经是一个很常见的需求了。在分工非常明确的大型企业里&#xff0c;往往有专门的数据分析团队 BI 或者数据开发团队&#xff0c;他们能够胜任此类需求&#xff08;但也未必是轻松的&#xff0c;或者说高效的&#xff09;。 …

编码器原理图

操作 旋转编码器提供两种交互方式&#xff1a; 每次用户旋转旋钮时&#xff0c;都会在 DT 和 CLK 引脚上产生低电平信号&#xff1a; 顺时针旋转会先使CLK引脚变为低电平&#xff0c;然后DT引脚也变为低电平。 逆时针旋转会使 DT 引脚首先变为低电平&#xff0c;然后 CLK 引脚…

深度学习PyTorch 之 RNN-中文多分类

关于RNN的理论部分我们已经在前面介绍过&#xff0c;所以这里直接上代码 1、 数据部分 1.1 读取数据 # 加载数据 data_path ./data/news.csv data pd.read_csv(data_path)# 预览数据的前几行 data.head()数据是csv格式&#xff0c;只有两列&#xff0c;第一列是标签&#…

2024最新外贸建站:WordPress搭建外贸独立站零基础教程

想与外国人做生意有多种方式&#xff0c;一些朋友选择在跨境电商平台上开店如&#xff08;亚马逊&#xff09;&#xff0c;而另一些朋友则决定建立自己的外贸独立站点。本篇教程主要说的是第二种方式如何快速建立自己的外贸独立站&#xff01;通过学习这篇外贸建站教程&#xf…

【AI绘画】免费GPU Tesla A100 32G算力部署Stable Diffusion

免责声明 在阅读和实践本文提供的内容之前&#xff0c;请注意以下免责声明&#xff1a; 侵权问题: 本文提供的信息仅供学习参考&#xff0c;不用做任何商业用途&#xff0c;如造成侵权&#xff0c;请私信我&#xff0c;我会立即删除&#xff0c;作者不对读者因使用本文所述方法…

Beans模块之工厂模块BeanClassLoaderAware

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…