3
私のシステムでは[Java VMのヒープサイズではない]の総RAMを暗号化するコードがあります。次のように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ビットを使用しているため4GBが最大の問題であると思います。
誰もがこのために方法/回避策を提案することはできません。基本的に、32ビットJVMを使用するシステムでは、どのようにRAM全体を取得しますか?次のように私のシステムの
完全な詳細は以下のとおりです。
OS:Windows 7の
CPU:インテルi7の
JDK:SunのJavaの1.6アップデート21、32ビット
RAM:8ギガバイト
わからない、この場合に役立ちますが、それはいくつかの情報を持っています:以下のようなOSの別名を試してみてくださいhttp://stackoverflow.com/questions/25552/using-java-to-get-os-level-system -information – bezmax
ここでいくつかの回答で全く同じ質問があります:http://stackoverflow.com/questions/4335356/getting-os-memory-size-from-java – Stas