如何查找操作系统位类型

我想知道操作系统类型,意味着它是64位os还是32位os。但是我从32位/ 64位可执行文件获得不同的响应,这些可执行文件获取有关操作系统的系统属性

我正在从系统属性获取详细信息。我有64位机器和操作系统Windows 8.1 X64

        "OS Architecture : " + System.getProperty("os.arch"));

        "OS Name : " + System.getProperty("os.name"));

        "OS Version : " + System.getProperty("os.version")

        "Data Model : " + System.getProperty("sun.arch.data.model"));


运行 64 位可执行文件时,获取后续响应。


操作系统架构amd64

操作系统名称 : 视窗 8

操作系统版本 : 6.2 amd64

数据型号 : 64


运行 32 位可执行文件时,获取后续响应。


操作系统体系结构x86

操作系统名称 : 视窗 8

操作系统版本 : 6.2 x86

数据型号 : 32


如何获取操作系统实际位类型?


答案 1

System.getProperty(“os.arch”) 将始终返回 jre 的位类型,而不是实际操作系统的位类型。

从 winapi 编写 jni 代码和 calll。由于您正在使用窗口。IsWow64Process

此布尔函数告诉您进程是否在 64 位操作系统上运行。


答案 2

这应该对您有所帮助

System.getProperty("os.arch");

当 JRE 的体系结构为 32 位时,将返回“x86”。我们必须编写本机代码才能使用 JNI 获得系统的真实体系结构。