VMSupport 的替代方案是什么?
What's the alternative for VMSupport?
int java8 sun.misc.VMSupport
实用程序提供了多种 API,如 getAgentProperties()
等。但是,此实用程序已在 java11 版本中删除。这个 class 有其他选择吗?
Java 11+ 替代方案是 com.sun.tools.attach.VirtualMachine
class (javadoc),它提供了 getAgentProperties()
方法。
来自 javadoc:
The following example demonstrates how VirtualMachine
may be used:
// attach to target VM
VirtualMachine vm = VirtualMachine.attach("2177");
// start management agent
Properties props = new Properties();
props.put("com.sun.management.jmxremote.port", "5000");
vm.startManagementAgent(props);
// detach
vm.detach();
您还可以从 AttachProvider
API (javadoc).
中获取一个 VirtualMachine
对象
(请注意,VMSupport
class 仍作为 jdk.internal.vm.VMSupport
在 Java 17 代码库中,但 Java 17除非你使用非常大的大锤,否则将阻止你使用它。只是不要。)
int java8 sun.misc.VMSupport
实用程序提供了多种 API,如 getAgentProperties()
等。但是,此实用程序已在 java11 版本中删除。这个 class 有其他选择吗?
Java 11+ 替代方案是 com.sun.tools.attach.VirtualMachine
class (javadoc),它提供了 getAgentProperties()
方法。
来自 javadoc:
The following example demonstrates how
VirtualMachine
may be used:
// attach to target VM
VirtualMachine vm = VirtualMachine.attach("2177");
// start management agent
Properties props = new Properties();
props.put("com.sun.management.jmxremote.port", "5000");
vm.startManagementAgent(props);
// detach
vm.detach();
您还可以从 AttachProvider
API (javadoc).
VirtualMachine
对象
(请注意,VMSupport
class 仍作为 jdk.internal.vm.VMSupport
在 Java 17 代码库中,但 Java 17除非你使用非常大的大锤,否则将阻止你使用它。只是不要。)