You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
2.3 KiB
Java
57 lines
2.3 KiB
Java
package com.docus.server;
|
|
|
|
import oshi.SystemInfo;
|
|
import oshi.hardware.CentralProcessor;
|
|
import oshi.hardware.GlobalMemory;
|
|
import oshi.hardware.HardwareAbstractionLayer;
|
|
import oshi.hardware.NetworkIF;
|
|
import oshi.software.os.FileSystem;
|
|
import oshi.software.os.OSFileStore;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
public class Example {
|
|
public static void main(String[] args) {
|
|
SystemInfo systemInfo = new SystemInfo();
|
|
CentralProcessor processor = systemInfo.getHardware().getProcessor();
|
|
int logicalProcessorCount = processor.getLogicalProcessorCount();
|
|
String cpuModel = processor.getProcessorIdentifier().getName();
|
|
long[] systemCpuLoadTicks = processor.getSystemCpuLoadTicks();
|
|
|
|
System.out.println(logicalProcessorCount);
|
|
System.out.println(cpuModel);
|
|
System.out.println(Arrays.asList(systemCpuLoadTicks));
|
|
|
|
GlobalMemory memory = systemInfo.getHardware().getMemory();
|
|
long totalMemorySize = memory.getTotal();
|
|
long availableMemorySize = memory.getAvailable();
|
|
double memoryUsage = (totalMemorySize - availableMemorySize) * 100.0 / totalMemorySize;
|
|
System.out.println(totalMemorySize);
|
|
System.out.println(availableMemorySize);
|
|
System.out.println(memoryUsage);
|
|
|
|
HardwareAbstractionLayer hal = systemInfo.getHardware();
|
|
FileSystem fileSystem = systemInfo.getOperatingSystem().getFileSystem();
|
|
List<OSFileStore> fileStores = fileSystem.getFileStores();
|
|
for (OSFileStore store : fileStores) {
|
|
long totalSpace = store.getTotalSpace();
|
|
long usableSpace = store.getUsableSpace();
|
|
double usage = (totalSpace - usableSpace) * 100.0 / totalSpace;
|
|
System.out.println(totalSpace);
|
|
System.out.println(usableSpace);
|
|
System.out.println(usage);
|
|
}
|
|
|
|
List<NetworkIF> networkIFs = systemInfo.getHardware().getNetworkIFs();
|
|
for (NetworkIF networkIF : networkIFs) {
|
|
String name = networkIF.getName();
|
|
long receiveBytes = networkIF.getBytesRecv();
|
|
long transmitBytes = networkIF.getBytesSent();
|
|
System.out.println(name);
|
|
System.out.println(receiveBytes);
|
|
System.out.println(transmitBytes);
|
|
}
|
|
}
|
|
}
|