com.sun.management.OperatingSystemMXBean
继承:java.lang.management.OperatingSystemMXBean
JDK 版本1.8
项目用的jdk 是1.8,接口也能调,不知道为什么1.8的api里没有这个类,只有这个类继承的java.lang.management.OperatingSystemMXBean的API,在JDK13 API中找到想要的东西了
模块 jdk.management 包 com.sun.management 接口操作系统MXBean 所有超接口: OperatingSystemMXBean,PlatformManagedObject 所有已知的子接口: UnixOperatingSystemMXBean 公共接口OperatingSystemMXBean 扩展OperatingSystemMXBean 运行 Java 虚拟机的操作系统的特定于平台的管理接口。 返回的OperatingSystemMXBean对象 ManagementFactory.getOperatingSystemMXBean() 是该接口或接口的实现类的实例,UnixOperatingSystemMXBean具体取决于其底层操作系统。 自从: 1.5
| 修饰符和类型 | 方法 | 描述 |
|---|---|---|
| long | getCommittedVirtualMemorySize() | 返回保证对正在运行的进程可用的虚拟内存量(以字节为单位,或者-1如果不支持此操作)。 |
| long | getFreePhysicalMemorySize() | 返回以字节为单位的可用物理内存量。 |
| long | getFreeSwapSpaceSize() | 返回以字节为单位的可用交换空间量。 |
| double | getProcessCpuLoad() | 返回 Java 虚拟机进程的“最近 cpu 使用情况”。 |
| long | getProcessCpuTime() | 返回运行 Java 虚拟机的进程使用的 CPU 时间(以纳秒为单位)。 |
| double | getSystemCpuLoad() | 返回整个系统的“最近 cpu 使用情况”。 |
| ong | getTotalPhysicalMemorySize() | 返回以字节为单位的物理内存总量。 |
| long | getTotalSwapSpaceSize() | 返回以字节为单位的交换空间总量。 |
| 修饰符和类型 | 方法 | 描述 |
|---|---|---|
| String | getArch() | 返回操作系统架构。 |
| int | getAvailableProcessors() | 返回 Java 虚拟机可用的处理器数量。 |
| String | getName() | 返回操作系统名称。 |
| double | getSystemLoadAverage() | 返回最后一分钟的系统负载平均值。 |
| String | getVersion() | 返回操作系统版本。 |
package com.zhonggg.commonUtils;
import com.sun.management.OperatingSystemMXBean;
import java.lang.management.ManagementFactory;
public class SystemMonitorUtils {
private static OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
public static void main(String[] args) throws Exception {
long totalPhysicalMemorySize = osmxb.getTotalPhysicalMemorySize();
System.out.println("物理内存:" + totalPhysicalMemorySize /(1024*1024*1024));
long freePhysicalMemorySize = osmxb.getFreePhysicalMemorySize();
System.out.println("空闲物理内存:" + freePhysicalMemorySize /(1024*1024*1024));
long committedVirtualMemorySize = osmxb.getCommittedVirtualMemorySize();
System.out.println("getCommittedVirtualMemorySize:" + committedVirtualMemorySize /(1024*1024));
String arch = osmxb.getArch();
System.out.println("arch:" + arch);
String name = osmxb.getName();
System.out.println("name:" + name);
double processCpuLoad = osmxb.getProcessCpuLoad();
System.out.println("getProcessCpuLoad:" + processCpuLoad);
while (true){
System.out.println("cpu 使用率:" + osmxb.getSystemCpuLoad()*100);
Thread.sleep(1000);
}
}
}



