gpt4 book ai didi

java - Java 中的总 RAM

转载 作者:搜寻专家 更新时间:2023-11-01 03:28:37 24 4
gpt4 key购买 nike

我有一段代码可以计算系统中的总 RAM [不是 Java VM 堆大小]。

具体如下:

        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
中央处理器:英特尔 i7
JDK:Sun Java 1.6 更新 21、32 位
内存:8 GB

最佳答案

想不出纯 Java 的方式,但是你可以使用 Runtime.exec() 来运行下面的命令

wmic MEMPHYSICAL Get MaxCapacity

编辑:更正 - 以上给出了安装 RAM 的最大容量。尝试如下操作系统别名:

wmic OS Get TotalVisibleMemorySize

关于java - Java 中的总 RAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6690653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com