【问题标题】:How to determine 32-bit OS or 64-bit OS from Java application [duplicate]如何从 Java 应用程序中确定 32 位操作系统或 64 位操作系统 [重复]
【发布时间】:2018-04-20 00:50:57
【问题描述】:

我知道如何使用 java 程序检查当前机器上运行的 JVM 是 32 位还是 64 位。 但是有没有可能知道当前机器上的操作系统是32位还是64位。

请告诉我如何确定使用 Java 程序。

【问题讨论】:

标签: java


【解决方案1】:

你可以跑

System.getProperty("os.arch")

检索系统架构。我的 Windows 64 位系统将返回 amd64 作为 os.arch 值。

【讨论】:

【解决方案2】:
System.getProperty("os.arch");

应该在所有平台上都可用,有关更多信息,请参阅 Java 系统属性教程。

但是如果是 32 位的 JVM,64 位的 Windows 平台会欺骗 JVM。实际上,64 位 Windows 会欺骗任何 32 位进程的环境,以帮助旧的 32 位程序在 64 位操作系统上正常工作。阅读有关 WOW64 的 MSDN 文章了解更多信息。

作为 WOW64 的结果,调用 System.getProperty("os.arch") 的 32 位 JVM 将返回“x86”。如果你想得到Windows上底层操作系统的真实架构,使用如下逻辑:

String arch = System.getenv("PROCESSOR_ARCHITECTURE");
String wow64Arch = System.getenv("PROCESSOR_ARCHITEW6432");

String realArch = arch != null && arch.endsWith("64")
                  || wow64Arch != null && wow64Arch.endsWith("64")
                      ? "64" : "32";

ChrisH回答了这个问题。

【讨论】:

猜你喜欢
  • 2017-07-17
  • 2011-07-06
  • 2011-07-07
  • 2013-08-29
  • 2012-09-01
  • 2011-02-20
  • 1970-01-01
  • 1970-01-01
  • 2015-09-26
相关资源
最近更新 更多