【问题标题】:What is the use of agentmain method in java instrumentationjava Instrumentation中agentmain方法有什么用
【发布时间】:2013-11-05 09:54:38
【问题描述】:

我使用 -javaagent 参数和 premain 方法完成了一些 java 字节码检测。但这是我第一次听说 agentmain 方法。我对这种方法有一些疑问。下面是它。

premain 和 agentmain 方法有相同的用途吗?
何时调用 agentmain 方法?
java Instrumentation中agentmain方法有什么用?

【问题讨论】:

标签: profiling bytecode instrumentation javaagents


【解决方案1】:

premain 在代理启动时调用应用程序之前。使用 premain 调用的代理使用 -javaagent 开关指定。

agentmain 在应用程序已经运行之后启动代理时调用。以agentmain 开头的代理可以使用 Sun 工具 API 以编程方式附加(仅适用于 Sun/Oracle JVM -- 引入动态代理的方法取决于实现)。

代理可以同时拥有premainagentmain,但在特定的JVM 调用中只会调用这两者中的一个。换句话说,您的代理将以premainagentmain 开头,但不能同时使用两者。

您可以在问题Starting a Java agent after program start的答案中找到更多信息。

【讨论】:

    猜你喜欢
    • 2011-01-28
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 2010-12-20
    • 2016-07-09
    相关资源
    最近更新 更多