检查 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