我正在尝试使用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位)?
答案 0 :(得分:0)
32位Windows无法为进程分配超过2GB的空间。即使您拥有完整的4 GB RAM,它也可以完全涂层,然后您只有2GB的RAM使用OS。
因此,无法在32位Windows上为您的进程重新获得2GB RAM。要获得更多,你需要64位。
有关详细信息:here