jdk6中 OperatingSystemMXBean.TotalPhysicalMemorySize, windows2003下得不到真实的内存值(大于2G),这个BUG已经被修改在新的版本中
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6853676,
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6628662
如果你不想升级JDK而且又必须使用这个几个函数的话,可以使用JNI的方法重写这个几个函数
JNIEXPORT jlong JNICALL
Java_com_sun_management_OperatingSystem_getTotalSwapSpaceSize
(JNIEnv *env, jobject mbean)
{
- MEMORYSTATUS ms;
- GlobalMemoryStatus(&ms);
- return (jlong)ms.dwTotalPageFile;
+ MEMORYSTATUSEX ms;
+ ms.dwLength = sizeof(ms);
+ GlobalMemoryStatusEx(&ms);
+ return (jlong) ms.ullTotalPageFile;
}
JNIEXPORT jlong JNICALL
Java_com_sun_management_OperatingSystem_getFreeSwapSpaceSize
(JNIEnv *env, jobject mbean)
{
- MEMORYSTATUS ms;
- GlobalMemoryStatus(&ms);
- return (jlong)ms.dwAvailPageFile;
+ MEMORYSTATUSEX ms;
+ ms.dwLength = sizeof(ms);
+ GlobalMemoryStatusEx(&ms);
+ return (jlong) ms.ullAvailPageFile;
}
JNIEXPORT jlong JNICALL
Java_com_sun_management_OperatingSystem_getFreePhysicalMemorySize
(JNIEnv *env, jobject mbean)
{
- MEMORYSTATUS ms;
- GlobalMemoryStatus(&ms);
- return (jlong) ms.dwAvailPhys;
+ MEMORYSTATUSEX ms;
+ ms.dwLength = sizeof(ms);
+ GlobalMemoryStatusEx(&ms);
+ return (jlong) ms.ullAvailPhys;
}
JNIEXPORT jlong JNICALL
Java_com_sun_management_OperatingSystem_getTotalPhysicalMemorySize
(JNIEnv *env, jobject mbean)
{
- MEMORYSTATUS ms;
- // also returns dwAvailPhys (free physical memory bytes),
- // dwTotalVirtual, dwAvailVirtual,
+ MEMORYSTATUSEX ms;
+ ms.dwLength = sizeof(ms);
+ // also returns ullAvailPhys (free physical memory bytes),
+ // ullTotalVirtual, ullAvailVirtual,
// dwMemoryLoad (% of memory in use)
- GlobalMemoryStatus(&ms);
- return ms.dwTotalPhys;
+ GlobalMemoryStatusEx(&ms);
+ return (jlong) ms.ullTotalPhys;
}
分享到:
相关推荐
Java Development Kit (JDK) 是Java编程语言的核心组件,它为开发者提供了编译、调试和运行Java应用程序所需的所有工具。 JDK 11是Java的一个重要版本,它在2018年9月发布,属于长期支持(LTS)版本,意味着它会得到...
压缩包内容: Java SE Development Kit 17.0.10 (1)jdk-17.0.10_windows-x64_bin.exe (2)jdk-17.0.10_windows-x64_bin.msi (3)jdk-17.0.10_windows-x64_bin.zip
最新版windows jdk-11.0.22_windows-x64_bin.zip最新版windows jdk-11.0.22_windows-x64_bin.zip最新版windows jdk-11.0.22_windows-x64_bin.zip最新版windows jdk-11.0.22_windows-x64_bin.zip
**Java Development Kit (JDK) 11.0.18 for Windows 64位** JDK(Java Development Kit)是Oracle公司发布的用于开发Java应用程序的软件开发工具包,它是Java程序员编写、编译、调试和运行Java应用程序的必备工具。...
最新版windows jdk-11.0.15_windows-x64_bin.exe最新版windows jdk-11.0.15_windows-x64_bin.exe
总的来说,JDK 11.0.12是Java开发者在Windows 64位系统上不可或缺的工具,它的安装和正确配置是进行Java编程的基础。了解和熟练掌握JDK的使用,不仅可以提高开发效率,还能帮助开发者更好地理解和利用Java的强大功能...
最新版windows jdk-11.0.20_windows-x64_bin.exe最新版windows jdk-11.0.20_windows-x64_bin.exe最新版windows jdk-11.0.20_windows-x64_bin.exe
《深入解析Windows JDK 11.0.8 64位安装与应用》 Windows JDK 11.0.8是Java开发工具包的一个重要版本,专为64位Windows操作系统设计,它提供了完整的Java开发环境,包括Java编译器、Java运行时环境以及各种开发工具...
**Java Development Kit (JDK) 11.0.20 for Windows x64** Java Development Kit (JDK) 是Oracle公司提供的用于开发和运行Java应用程序的重要工具集。JDK 11.0.20 版本是针对Windows x64平台的一个更新版本,包含了...
jdk-11.0.15.1(jdk-11.0.15.1_windows-x64_bin.exe )适用于Windows x64 Installer系统:是一款Java 语言的软件开发工具包。JAVA JDK软件是整个Java的核心,不仅操作很简单,而且JAVA JDK有着实用、稳定、安全、...
标题“最新官方jdk-11.0.15_windows-x64_bin”指的是Java Development Kit (JDK) 的一个特定版本,即11.0.15,它针对Windows操作系统且为64位架构设计。这个JDK是官方发布的,确保了可靠性和安全性。 描述中的...
标题中的"jdk-11.0.20-windows-x64-bin.exe"指的是Oracle JDK 11的第20次更新版本,面向Windows操作系统的64位平台的二进制安装程序。这个安装包是用于在Windows系统上部署Java Development Kit的,版本号11.0.20,...
标题“jdk-17.0.2_windows-x64_bin.exe”指的是Java Development Kit(JDK)的第17.0.2版本,专为Windows操作系统64位架构设计的可执行安装文件。JDK是Java编程语言的核心组成部分,包含了开发和运行Java应用程序所...
jdk-11.0.15.1(jdk-11.0.15.1_windows-x64_bin.zip)适用于Windows x64 Compressed Archive系统:是一款Java 语言的软件开发工具包。JAVA JDK软件是整个Java的核心,不仅操作很简单,而且JAVA JDK有着实用、稳定、...
本文将深入探讨JDK 17.0.4这一特定版本,尤其关注其在Windows 64位操作系统下的应用。 一、JDK简介 JDK是Java编程语言的核心组件,包含了Java编译器、Java虚拟机(JVM)、类库以及各种开发和调试工具。它是Java...
在Windows环境下,用户可以通过解压此zip文件,然后设置环境变量`JAVA_HOME`指向JDK的安装路径,并将`bin`目录添加到`PATH`变量,以便于系统能够识别并执行JDK的相关工具。同时,确保安装完成后,正确配置JDK版本以...
5. **改进的垃圾收集器**:JDK 11默认启用了G1垃圾收集器,并且在实验性状态下提供了ZGC(Z Garbage Collector),这是一款低暂停时间的垃圾收集器,适用于大内存的应用。 6. **增强的SSL/TLS**:提供了TLSv1.3支持...
**Java Development Kit (JDK) 11.0.11 for Windows 64位** JDK(Java Development Kit)是Oracle公司发布的用于开发和运行Java应用程序的重要工具集。在这个最新版的`jdk-11.0.11_windows-x64_bin.zip`压缩包中,...
Java Development Kit (JDK) 11.0.21 for Windows x64 是 Oracle 提供的 Java SE 平台的长期支持版本,包含了许多增强功能和新特性,如局部变量类型推断、HttpClient API、改进的垃圾回收器和 TLS 1.3 支持。...