Catch the exception that the OperatingSystemMXBean does not exist

This commit is contained in:
Glavo
2022-12-01 03:00:38 +08:00
committed by Haowei Wen
parent d11e22026c
commit ce31bcc6e0

View File

@@ -218,6 +218,7 @@ public enum OperatingSystem {
return UNKNOWN; return UNKNOWN;
} }
@SuppressWarnings("deprecation")
public static Optional<PhysicalMemoryStatus> getPhysicalMemoryStatus() { public static Optional<PhysicalMemoryStatus> getPhysicalMemoryStatus() {
if (CURRENT_OS == LINUX) { if (CURRENT_OS == LINUX) {
try { try {
@@ -246,6 +247,7 @@ public enum OperatingSystem {
} }
} }
try {
java.lang.management.OperatingSystemMXBean bean = java.lang.management.ManagementFactory.getOperatingSystemMXBean(); java.lang.management.OperatingSystemMXBean bean = java.lang.management.ManagementFactory.getOperatingSystemMXBean();
if (bean instanceof com.sun.management.OperatingSystemMXBean) { if (bean instanceof com.sun.management.OperatingSystemMXBean) {
com.sun.management.OperatingSystemMXBean sunBean = com.sun.management.OperatingSystemMXBean sunBean =
@@ -253,6 +255,8 @@ public enum OperatingSystem {
java.lang.management.ManagementFactory.getOperatingSystemMXBean(); java.lang.management.ManagementFactory.getOperatingSystemMXBean();
return Optional.of(new PhysicalMemoryStatus(sunBean.getTotalPhysicalMemorySize(), sunBean.getFreePhysicalMemorySize())); return Optional.of(new PhysicalMemoryStatus(sunBean.getTotalPhysicalMemorySize(), sunBean.getFreePhysicalMemorySize()));
} }
} catch (NoClassDefFoundError ignored) {
}
return Optional.empty(); return Optional.empty();
} }