Java – 将java代理注入到运行jvm中
发布时间:2020-12-14 23:59:13 所属栏目:Java 来源:网络整理
导读:基本上,我正在尝试编写一些列出JVM加载的每个类的东西.我写的是有效的,但它只适用于它运行的jvm. 我精心设计了一个 java代理来动态注入另一个JVM,但后来意识到我实际上并不知道如何注入它. 我如何实际将此代理发送到另一个JVM? 可能吗? 解决方法 动态代理
基本上,我正在尝试编写一些列出JVM加载的每个类的东西.我写的是有效的,但它只适用于它运行的jvm.
我精心设计了一个 java代理来动态注入另一个JVM,但后来意识到我实际上并不知道如何注入它. 我如何实际将此代理发送到另一个JVM? 可能吗? 解决方法
动态代理需要声明在目标VM中附加时执行的agentmain(String,Instrumentation)方法.您可以使用tools.jar依赖项,它(仅限
Java 9)仅包含在JDK中,但不包含在JRE中.但是,您可以将代理程序与JDK捆绑在一起,并从那里附加到JVM.
最大的问题是不同的虚拟机API有所不同;但是,您可以使用像byte-buddy-agent这样的库,其中包含不同VM的不同实现.附件将通过以下方式完成: ByteBuddyAgent.attach("my.jar","my-pid"); 这会将my.jar中包含的代理程序附加到具有id my-id的Java进程上. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |