diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/jvm/cpu/CPUProvider.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/jvm/cpu/CPUProvider.java index 781016ad7..8b61f596c 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/jvm/cpu/CPUProvider.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/jvm/cpu/CPUProvider.java @@ -15,8 +15,9 @@ public enum CPUProvider { CPUProvider() { int processorNum = ProcessorUtil.getNumberOfProcessors(); try { - CPUProvider.class.getClassLoader().loadClass("com.sun.management.OperatingSystemMXBean"); - this.cpuMetricAccessor = new SunCpuAccessor(processorNum); + this.cpuMetricAccessor = + (CPUMetricAccessor)CPUProvider.class.getClassLoader().loadClass("org.skywalking.apm.agent.core.jvm.cpu.SunCpuAccessor") + .getConstructor(int.class).newInstance(processorNum); } catch (Exception e) { this.cpuMetricAccessor = new NoSupportedCPUAccessor(processorNum); ILog logger = LogManager.getLogger(CPUProvider.class);