如何从Java应用程序确定32位OS或64位OS

时间:2017-11-07 14:59:03

标签: java

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

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

2 个答案:

答案 0 :(得分:0)

System.getProperty("os.arch");

应该可以在所有平台上使用,有关详细信息,请参阅Java系统属性教程。

但如果它是32位JVM,那么64位Windows平台将存在于JVM中。实际上64位Windows将涉及任何关于环境的32位进程,以帮助旧的32位程序在64位操作系统上正常工作。有关更多信息,请阅读有关WOW64的MSDN文章。

作为WOW64的结果,32位JVM调用System.getProperty(“os.arch”)将返回“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回答了这个问题。

答案 1 :(得分:-1)

你可以运行

System.getProperty("os.arch")

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