檢查 Java 是 64 位還是 32 位

Mohammad Irfan 2023年1月30日 2021年10月30日
  1. 使用 System 類檢查 Java 是 64 還是 32 位
  2. 使用 os.arch 令牌檢查 Java 是 64 還是 32 位
  3. 使用 java -version 命令檢查 Java 是 64 還是 32 位
  4. 使用 Linux file 命令檢查 Java 是 64 還是 32 位
  5. 使用 jna 庫檢查 Java 是 64 還是 32 位
  6. 使用 Native 類檢查 Java 是 64 還是 32 位
檢查 Java 是 64 位還是 32 位

本教程介紹了在 Java 中檢查 Java 是 64 版本還是 32 版本的步驟。

要檢查安裝的 Java 版本是基於 64 位還是 32 位,我們可以使用多種方法,例如 System.getProperty() 方法、Java 版本命令和 sun.Platform 類。

在本文中,我們將在示例中使用這些方法來檢查 Java 平臺。

使用 System 類檢查 Java 是 64 還是 32 位

在這個例子中,我們使用了 System 類的 getProperty() 方法,該方法將字串標記作為引數並返回一個指示 Java 版本架構的字串。

在這裡,我們使用了代表 Java 內部模型的 sun.arch.data.model 字串。請參閱下面的示例。

import java.io.IOException;
public class SimpleTesting{
    public static void main(String[] args) throws IOException{
        String is64 = System.getProperty("sun.arch.data.model");
        System.out.println("Your system supports "+is64+" bit");
    }
}

輸出:

Your system supports 64 bit

使用 os.arch 令牌檢查 Java 是 64 還是 32 位

在這裡,我們使用 os.arch 標記作為 System 類的 getProperty() 方法中的引數。它返回 Java 的架構型別。請參閱下面的示例。

import java.io.IOException;
public class SimpleTesting{
    public static void main(String[] args) throws IOException{
        String is64 = System.getProperty("os.arch");
        System.out.println("Your system supports "+is64+" bit");
    }
}

輸出:

Your system supports amd64 bit

使用 java -version 命令檢查 Java 是 64 還是 32 位

這是檢查已安裝 Java 體系結構的最簡單方法之一。如果你不想編寫任何程式碼,只需開啟終端/命令提示符並使用此命令即可。執行此命令後,它將列印出所有詳細資訊以及 Java 架構。

$ java -version

輸出:

OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

使用 Linux file 命令檢查 Java 是 64 還是 32 位

如果你使用的是 Linux,那麼你可以使用 file 命令以及已安裝 Java 的路徑位置,你將獲得如下輸出所示的輸出。

$ file {YOUR_JRE_LOCATION_HERE}/bin/java

輸出:

ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2

使用 jna 庫檢查 Java 是 64 還是 32 位

這是另一種需要具有架構資訊的內部 sun 包的解決方案。在這裡,我們使用了包含 is64Bit() 方法的 sun 包的 Platform 類,如果 Java 是 64 型別,則返回 true,否則返回 false。請參閱下面的示例。

jna 是一個本地 API 庫,用於連線低階程式碼。

import java.io.IOException;
import com.sun.jna.Platform;
public class SimpleTesting{
    public static void main(String[] args) throws IOException{
        boolean is64 = Platform.is64Bit();
        System.out.println("Your system supports is64 bit: "+is64);        
    }
}

輸出:

Your system supports is64 bit: true

使用 Native 類檢查 Java 是 64 還是 32 位

jna 包的 Native 類提供了一個常量 POINTER_SIZE,它返回 Java arch 使用的位元組數。如果返回 8,則表示它是 64 位系統,否則返回 32。請參見下面的示例。

import java.io.IOException;
import com.sun.jna.Native;
public class SimpleTesting{
    public static void main(String[] args) throws IOException{
        boolean is64 = Native.POINTER_SIZE == 8;
        System.out.println("Your system supports is64 bit: "+is64);
    }
}

輸出:

Your system supports is64 bit: true