关于javaagents的教程
我想了解一些关于javaagents的知识,但是研究并不容易。 结果大部分是指JADE
。 我知道Java代理可以意味着两件事情:
- 在Java中编程的代理是分布式系统的代理概念的化身。
- 一个用于扩展JVM工作的低级软件组件,如分析器,代码覆盖工具等
我在这里发现了类似的问题,但不幸的是它也提到了版本1。
你知道任何文章,初学者的教程,关于在版本2中的javaagent示例项目? 我在这里find一个,但我正在寻找更多。
第二个案例谈到了Java Instrumentation API – 这个链接指向一个相当具有描述性的Javadoc。
在这里,是如何创buildJava工具代理的完整说明和示例 。
主要概念是:
-
实现一个静态
premain
(premain
)方法,如下所示:import java.lang.instrument.Instrumentation; class Example { public static void premain(String args, Instrumentation inst) { ... } }
-
创build一个清单文件(比如说
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
第二点描述的javaagent很less有用的资源。
- 如何指导编写一个javaagent
- 驯服Javaagents – 介绍在BCN JUG 2015年
- java.lang.instrument的API文档