0

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

4

1 回答 1

0

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

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

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

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

于 2013-11-22T10:35:27.770 回答