3
我有一段代碼可以計算我係統中的RAM總數[不是Java VM堆大小]。Java中的RAM總數
它是如下:
OperatingSystemMXBean operatingSystemMXBean =
ManagementFactory.getOperatingSystemMXBean();
Method m = operatingSystemMXBean.getClass().
getDeclaredMethod("getTotalPhysicalMemorySize");
m.setAccessible(true);
Object value = m.invoke(operatingSystemMXBean);
if (value != null)
{
System.out.println(value);
}
與上面的代碼段的問題是,它給我不正確的值有時。例如,在具有8 GB RAM的系統中,使用32位JVM,它顯示4 GB。我想這是因爲JVM是32位,使用32位4 GB是它可以解決的最大值。
任何人都可以爲此提出建議方法/解決方法。基本上,我們如何在使用32位JVM的系統中獲得總RAM。是
我的系統的全部細節如下:
操作系統:Windows 7
CPU:英特爾酷睿i7
JDK:的Sun Java 1.6更新21,32位
RAM:8 GB
不知道這是否會有所幫助,但它有一些信息:http://stackoverflow.com/questions/25552/using-java-to-get-os-level-system - 資料 – bezmax
這裏有一些答案完全相同的問題:http://stackoverflow.com/questions/4335356/getting-os-memory-size-from-java – Stas