如何確保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.pswp.cn/news/716054.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716054.shtml
英文地址,請注明出處:http://en.pswp.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…

vmware的詭異網絡

坦白說,vmware的網絡我始終是沒有搞太懂。 我習慣使用的是“僅主機”和“NAT”。 “僅主機”我習慣配置靜態IP,互相訪問沒問題。 “NAT”則主要用于windows系統,簡單方便。windows虛擬機一般也沒啥特別的互相訪問需求,直接文件復制…

簡單了解GaussDB

大家都已經很熟悉openGauss了,昨天我的文章中說陜西電力的用采系統用Gaussdb替代了Oracle,就有朋友問我這個Gaussdb是不是就是openGauss。這個問題還真的有點不好回答,Gaussdb和openGauss淵源很近,但是還不是一碼事。華為在數據庫…

c++八股文:c++面向對象

文章目錄 1.c面向對象三大特性2.c的三個訪問修飾符3.多重繼承4.重載與重寫5.c多態怎么實現6.成員函數/成員變量/靜態成員函數/靜態成員變量的區別7.構造函數和析構函數8.c構造函數有幾種9.什么是虛函數什么是虛函數表10.虛函數和純虛函數的區別11.抽象類和純虛函數12.虛析構13.…

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方法設置頁腳打印來實現添加頁腳的目的。這個四個方法的傳入參數…

Flutter異常上報及性能監控實現

1. 頁面異常監測 在Flutter中,通常用FlutterError監測Flutter框架拋出的異常,用runZonedGuarded監測應用中用戶代碼異常。 class AppGuarded {run(Widget app) {//1. 用FlutterError監測flutter框架拋出的異常FlutterError.onError (FlutterErrorDetail…

STM32F4 HAL庫串口死鎖問題調試記錄

文章目錄 STM32F4 HAL庫串口死鎖問題調試記錄調試方法結果分析解決方法一:方法二: STM32F4 HAL庫串口死鎖問題調試記錄 使用方法:通過串口DMA固定周期向外發送數據,同時開啟串口DMA接收用于接收其它板卡發來的數據。 問題&#x…

2024年,智慧文旅領航新時代,重塑旅行體驗的未來篇章!

隨著科技的飛速發展,智慧文旅正成為旅游行業的新寵,以其獨特的魅力和無限可能,引領著旅行體驗的全面升級。 2024年,智慧文旅火爆出圈,成為各界關注的焦點,為游客帶來了前所未有的震撼與享受。 智慧文旅&a…

290.【華為OD機試】連續出牌數量(深度優先搜索DFS—JavaPythonC++JS實現)

??點擊這里可直接跳轉到本專欄,可查閱頂置最新的華為OD機試寶典~ 本專欄所有題目均包含優質解題思路,高質量解題代碼(Java&Python&C++&JS分別實現),詳細代碼講解,助你深入學習,深度掌握! 文章目錄 一. 題目二.解題思路三.題解代碼Python題解代碼JAVA題解…

《猛獸派對》好玩嗎值得買嗎?蘋果電腦也能裝《猛獸派對》嗎?猛獸派對好友通行證 動物派對 猛獸對戰游戲

目錄 一、《猛獸派對》好玩嗎? 游戲玩法: 物理引擎: 關卡設計: 游戲特色: 評價: 榮譽: 二、蘋果電腦也能裝《猛獸派對》嗎? 第1步:下載并安裝CrossOver這款軟件…

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

1.文件的打開和關閉 fopen有2個參數,第一個是文件的名字,第二個是打開的模式(例如是讀文件還是寫文件) (1)該文件夾下面沒有data.txt文件,但是我執行了read操作,所以會顯示這樣的錯誤 (2&#…

『NLP學習筆記』圖解GPT3(How GPT3 Works-Visualizations and Animations)

圖解GPT3(How GPT3 Works-Visualizations and Animations) 文章目錄 一. GPT-1 vs GPT-2 vs GPT-3 vs GPT-3.5 vs GPT-4二. GPT32.1. 訓練動圖2.2. 預測動圖2.3. 代碼生成示例三. 參考文章原作者主頁:Jay Alammar原英文鏈接:How GPT3 Works - Visualizations and Animations …

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 個,則反轉前…

Spring與Spring Boot:簡化Java開發的革命性框架

Spring與Spring Boot:簡化Java開發的革命性框架 摘要:本文將深入探討Spring與Spring Boot兩個在Java開發領域具有重要地位的框架。我們將了解它們的核心概念、區別、聯系以及在實際項目中的應用。通過本文,您將更好地理解如何使用這兩個框架…

Zookeeper4:Java客戶端、應用場景以及實現、第三方客戶端curator工具包

文章目錄 Java連接Zookeeper服務端依賴代碼使用 應用場景統一命名服務統一配置管理統一集群管理服務器節點動態上下線理解實現模擬服務提供者【客戶端代碼】-注冊服務模擬服務消費者【客戶端代碼】-獲取服務信息進行請求消費 軟負載均衡分布式鎖理解實現 生產集群安裝N臺機器合…