我使用 -javaagent 参数和 premain 方法完成了一些java字节码检测。但这是我第一次听说 agentmain 方法。我对这个方法有一些疑问。以下是它。
premain和agentmain方法有相同的用途吗?
调用agentmain方法时?
在java检测中使用agentmain方法有什么用?
答案 0 :(得分:9)
premain
。使用premain
调用的代理使用 -javaagent 开关指定。
agentmain
。以agentmain
开头的代理可以使用Sun工具API以编程方式附加(仅适用于Sun / Oracle JVM - 引入动态代理的方法取决于实现)。
代理可以同时拥有premain
和agentmain
,但在特定的JVM调用中只会调用其中一个。换句话说,您的代理将以premain
或agentmain
开头,但不能同时开始。
您可以在问题Starting a Java agent after program start的答案中找到有关此内容的更多信息。