int java8 中的
sun.misc.VMSupport
util 提供了多种 api,如 getAgentProperties()
等。但是,该 util 在 java11 版本中被删除。这门课还有其他选择吗?
Java 11+ 的替代方案是
com.sun.tools.attach.VirtualMachine
类 (javadoc),它提供了 getAgentProperties()
方法。
来自javadoc:
以下示例演示了如何使用
:VirtualMachine
// 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();
您还可以从
VirtualMachine
API (javadoc) 获取
AttachProvider
对象。
(请注意,
VMSupport
类仍然在 Java 17 代码库中作为 jdk.internal.vm.VMSupport
,但 Java 17 会阻止你使用它,除非你使用一个非常大的大锤。只是不要。)