如何重用已在运行时加载到目标jvm中的代理程序

时间:2013-11-21 11:45:16

标签: java jvm aop cglib jvmti

我正在使用jdk 1.6。我将一个代理附加到目标jvm并发送了几个参数。是否有可能重用目标jvm中运行的代理,因为我的几个参数已经改变了?我想使用这些参数的新值在代理中编写新工作。有没有人有类似的经历?感谢

1 个答案:

答案 0 :(得分:0)

当然,您可以重用代理的实现。 Java代理,由某种方法

表示
public static void premain(String agentArgs, Instrumentation inst); 

被视为任何Java类。唯一的事情是在普通 Java应用程序的主入口点之前调用此代理程序。此外,代理提供了轻松添加Instrumentation的可能性。您可以通过将代理程序包添加到程序的类路径中来重构您的代理程序以进入其自己的程序包并将代理程序添加到任何程序。代理基本上只是一个普通的Java程序,它在清单文件中声明的Java程序之前或命令行中的显式程序入口点之前被调用。

请注意,为了加载代理而必须加载的任何类都不能再被截获。