Java程式檢查JVM是32位還是64位


在本文中,我們將學習如何確定系統中安裝的JVM是32位還是64位。對於此操作,我們使用getProperty() 方法System 類,它有助於檢索指定引數的系統屬性。

在計算機體系結構中,32位和64位分別指的是那些分別以32位單元和64位單元操作資料的元件。與32位機器相比,64位機器據說速度更快且更安全。

什麼是JVM?

JVMJava虛擬機器,負責執行位元組碼。它是 Java執行時環境 (JRE) 的一部分。 Java程式語言 是平臺無關的,但JVM是平臺相關的。每個作業系統都需要單獨的JVM。如果我們有任意Java原始碼的位元組碼,由於JVM的存在,我們可以在任何平臺上輕鬆執行它。Java檔案的整個執行過程如下:

  • 首先,我們將Java原始碼儲存為副檔名為.java的檔案,該檔案由編譯器轉換為副檔名為.class的位元組碼。這發生在編譯時。

  • 現在在執行時,JVM讀取並驗證位元組碼,為變數分配記憶體,然後將該位元組碼轉換為機器可讀的格式。

如何檢查JVM是32位還是64位?

我們可以透過以下方式檢查JVM是32位還是64位:

  • 使用os.arch屬性
  • 使用sun.arch.data.model屬性
  • 使用命令列介面

使用os.arch

Java System類的 os.arch 屬性返回一個字串,該字串表示Java虛擬機器(JVM)的體系結構。

示例

在下面的Java程式中,我們透過將 os.arch 屬性作為引數傳遞給getProperty()方法來檢查JVM是32位還是64位。

public class Main {
   public static void main(String[] args) {
      String info = System.getProperty("os.arch");
      System.out.println(info + "-bit JVM is installed in your device ");
   }
}

執行此程式碼後,將產生以下結果:

amd64-bit JVM is installed in your device

使用sun.arch.data.model

如果我們將 sun.arch.data.model 屬性作為引數值傳遞給 getProperty() 方法,它將描述系統中安裝的當前JVM的配置。

示例

以下Java程式演示瞭如何使用 sun.arch.data.model 屬性驗證JVM是32位還是64位。

public class Main {
   public static void main(String[] args) {
      String info = System.getProperty("sun.arch.data.model");
      if (info.equals("64")) {
         System.out.println(info + "-bit JVM is installed in your device ");
      } else {
         System.out.println(info + "-bit JVM is installed in your device ");
      }
   }
}

執行此程式碼後,將生成以下輸出:

64-bit JVM is installed in your device

使用命令列介面

在裝置上開啟cmd並鍵入 java --version。按下回車鍵後,您將看到根據裝置配置而產生的結果:

C:\Users\Lenovo>java --version
java 17.0.6 2023-01-17 LTS
Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)

結論

JVM是平臺相關的機器,它將位元組碼轉換為機器可讀的格式。32位和64位JVM之間的主要區別在於記憶體大小限制。對於32位,我們最多可以指定4GB,而64位則具有更大的容量。在本文中,我們討論了兩個Java程式來檢查JVM是32位還是64位。

更新於:2024年8月1日

733 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.