Java程式檢查JVM是32位還是64位
在本文中,我們將學習如何確定系統中安裝的JVM是32位還是64位。對於此操作,我們使用getProperty() 方法 的 System 類,它有助於檢索指定引數的系統屬性。
在計算機體系結構中,32位和64位分別指的是那些分別以32位單元和64位單元操作資料的元件。與32位機器相比,64位機器據說速度更快且更安全。
什麼是JVM?
JVM 是 Java虛擬機器,負責執行位元組碼。它是 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位。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP