如何完成这种仪器

时间:2013-01-21 14:10:25

标签: java classloader bytecode instrumentation

我的系统上运行了不同的Java应用程序,并希望从其中一个应用程序中检测类

尝试使用动态加载的Java代理执行此操作时,我发现我们可以将其附加到jvm实例,当{I} vm实例需要id jvm时通过从Windows任务管理器搜索代理jar并不附加到此进程并且抛出错误来放置已运行的Java应用程序的pid

使用ManagementFactory.getRuntimeMXBean()执行此操作时,返回的进程id()是加载agent.jar的实例的进程。请建议如何访问不同vmid实例的jvm

1 个答案:

答案 0 :(得分:1)

您可以使用脚本执行 JPS 命令,并提取有关正在运行的VM实例的信息。

此外,jps命令使用具有MonitoredHost方法的activeVms() API。