我想学习一些关于javaagents的东西,但研究并不容易。大部分结果都是JADE
。我知道java代理可能意味着两件事:
答案 0 :(得分:74)
第二个案例讨论Java Instrumentation API - 这个链接指向一个相当具有描述性的Javadoc。
这里是完整的指令和example of how to create java instrumentation agent。
主要概念是:
实现静态premain
(类似于main
)方法,如下所示:
import java.lang.instrument.Instrumentation;
class Example {
public static void premain(String args, Instrumentation inst) {
...
}
}
创建一个清单文件(例如,manifest.txt
),标记此类以进行预执行。其内容如下:
Premain-Class: Example
编译该类并将此类打包成JAR
存档:
javac Example.java
jar cmf manifest.txt yourAwesomeAgent.jar *.class
使用-javaagent
参数执行您的JVM,如下所示:
java -javaagent:yourAwesomeAgent.jar -jar yourApp.jar
答案 1 :(得分:4)