在32位Windows中从Java获取超过2GB计算机的总物理内存大小

时间:2014-10-23 23:20:59

标签: java

我正在尝试使用Java 7以编程方式检索Windows XP上可用的总物理内存。我正在使用OperatingSystemMXBean来检索此值

((com.sun.management.OperatingSystemMXBean) java.lang.management.ManagementFactory.getOperatingSystemMXBean()).getTotalPhysicalMemorySize()

但是,这会返回2147483647(2GB),而任务管理器报告的总物理内存为3669488 KB。

据我所知,32位操作系统每个进程最多允许2GB RAM,所以我猜测这是在某种程度上干扰了OSMXBean方法。是否有另一种获取总物理内存大小的方法,可以跨平台正常工作(即32位和64位)?

1 个答案:

答案 0 :(得分:0)

32位Windows无法为进程分配超过2GB的空间。即使您拥有完整的4 GB RAM,它也可以完全涂层,然后您只有2GB的RAM使用OS。

因此,无法在32位Windows上为您的进程重新获得2GB RAM。要获得更多,你需要64位。

有关详细信息:here