Java程序检查JVM是32位还是64位

Java程序检查JVM是32位还是64位

在编写java程序来检查JVM是32位还是64位之前,我们先讨论一下JVM。

JVM是java虚拟机,负责执行字节码。它是 Java 运行时环境 (JRE) 的一部分。我们都知道java是平台无关的,但是JVM是平台相关的。我们需要为每个操作系统提供单独的 JVM。如果我们有任何java源代码的字节码,由于JVM,我们可以轻松地在任何平台上运行它。 java文件执行的整个过程如下 -

  • 首先,我们保存扩展名为.java的java源代码,编译器将其转换为扩展名为.class的字节码。这发生在编译时。

  • 现在,在运行时,JVM 读取并验证字节代码,为变量分配内存,然后将该字节代码转换为机器可读的形式。

我们可以通过在java程序中使用两个系统属性“os.arch”和“sun.arch.data.model”来检查JVM是32位还是64位。还有另一种方法,我们可以通过命令行使用“java --version”来检查它。

获取属性()

在本文中,我们将使用此方法来获取 JVM 的详细信息。它存在于系统类中。它有助于检索指定参数的系统属性。如果参数存在,则返回一个包含给定参数值的字符串,否则返回 null。

语法

System.getProperty(key); 

这里,“key”接受参数。

方法 1:使用 os.arch

示例

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

在上面的代码中,我们声明了一个名为“info”的字符串变量来存储“getProperty()”方法返回的值。

方法 2:使用 sun.arch.data.model

示例

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

在上面的代码中,我们声明了一个名为“info”的字符串变量来存储“getProperty()”方法返回的值。在 if else 块中,我们检查返回的字符串是否等于“64”或不使用“equals()”方法。 ‘equals()’方法用于比较两个字符串。它的返回类型是布尔值,如果两个字符串相等则返回 true,否则返回 false。在本例中,if block 为 true。因此,它打印的是 64 位。

方法 3:使用命令行界面

在您的设备中打开 cmd 并输入“java --version”。当您按 Enter 键时,您将看到根据您设备的配置而定的结果 -

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 位,我们可以指定最大 4 GB,但 64 位的容量要大得多。在本文中,我们讨论了两个 java 程序来检查 JVM 是 32 位还是 64 位。

以上就是Java程序检查JVM是32位还是64位的详细内容,更多请关注其它相关文章!