importjava.io.File;importjava.lang.management.ManagementFactory;importjava.lang.management.MemoryMXBean;importjava.lang.management.MemoryUsage;importcom.sun.management.OperatingSystemMXBean;importjava.text.DecimalFormat;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.concurrent.Executors;importjava.util.concurrent.TimeUnit;importoshi.SystemInfo;importoshi.hardware.CentralProcessor;/*** 系统监控*/
public classSystemMonitor {public voidinit() {
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(()->{try{
SystemInfo systemInfo= newSystemInfo();
OperatingSystemMXBean osmxb=(OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
MemoryMXBean memoryMXBean=ManagementFactory.getMemoryMXBean();//椎内存使用情况
MemoryUsage memoryUsage =memoryMXBean.getHeapMemoryUsage();//初始的总内存
long initTotalMemorySize =memoryUsage.getInit();//最大可用内存
long maxMemorySize =memoryUsage.getMax();//已使用的内存
long usedMemorySize =memoryUsage.getUsed();//操作系统
String osName = System.getProperty("os.name");//总的物理内存
String totalMemorySize = new DecimalFormat("#.##")
.format(osmxb.getTotalPhysicalMemorySize()/ 1024.0 / 1024 / 1024) + "G";//剩余的物理内存
String freePhysicalMemorySize = new DecimalFormat("#.##")
.format(osmxb.getFreePhysicalMemorySize()/ 1024.0 / 1024 / 1024) + "G";//已使用的物理