Java Agent如何实现全面解析功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计5353个文字,预计阅读时间需要22分钟。
今天简单写下对Java agent的一些理解和认识,一开始我对它的概念也相当陌生。后来在别人口中听到了字节码插桩、bTrace、Arthas等词汇,后面才逐渐了解到Java还提供了这样的工具。
JVM启动前静态Instrument Java agent,是一种在Java程序启动前就通过特定的文件方式(比如agentlib)来注入agent代码的方式。
今天打算写一下 Java agent,一开始我对它的概念也比较陌生,后来在别人口中听到 字节码插桩,bTrace,Arthas后面才逐渐了解到Java还提供了这么个工具。
JVM启动前静态Instrument
Java agent 是什么?
Java agent是java命令的一个参数。参数 javaagent 可以用于指定一个 jar 包,并且对该 java 包有2个要求:
- 这个 jar 包的 MANIFEST.MF 文件必须指定 Premain-Class 项。
- Premain-Class 指定的那个类必须实现 premain() 方法。
premain 方法,从字面上理解,就是运行在 main 函数之前的的类。当Java 虚拟机启动时,在执行 main 函数之前,JVM 会先运行-javaagent所指定 jar 包内 Premain-Class 这个类的 premain 方法 。
本文共计5353个文字,预计阅读时间需要22分钟。
今天简单写下对Java agent的一些理解和认识,一开始我对它的概念也相当陌生。后来在别人口中听到了字节码插桩、bTrace、Arthas等词汇,后面才逐渐了解到Java还提供了这样的工具。
JVM启动前静态Instrument Java agent,是一种在Java程序启动前就通过特定的文件方式(比如agentlib)来注入agent代码的方式。
今天打算写一下 Java agent,一开始我对它的概念也比较陌生,后来在别人口中听到 字节码插桩,bTrace,Arthas后面才逐渐了解到Java还提供了这么个工具。
JVM启动前静态Instrument
Java agent 是什么?
Java agent是java命令的一个参数。参数 javaagent 可以用于指定一个 jar 包,并且对该 java 包有2个要求:
- 这个 jar 包的 MANIFEST.MF 文件必须指定 Premain-Class 项。
- Premain-Class 指定的那个类必须实现 premain() 方法。
premain 方法,从字面上理解,就是运行在 main 函数之前的的类。当Java 虚拟机启动时,在执行 main 函数之前,JVM 会先运行-javaagent所指定 jar 包内 Premain-Class 这个类的 premain 方法 。

