浅析Java强大的动态Instrumention能力

前言

在前面的博客中,我写过一句话,叫做

Java世界里的一切东西都是在拼Java命令行参数

如果你使用IDEA,并且在运行 Java 代码时观察过 IDEA 帮我们拼出来的命令行参数,举个例子

D:\jdk8\jdk1.8.0_232\bin\java.exe "\"-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 201.4865.12\lib\idea_rt.jar=61840:C:\Program Files\JetBrains\IntelliJ IDEA 201.4865.12\bin\"" -Dfile.encoding=UTF-8 -classpath ( 省略一系列依赖Jar包 ) C:\Users\25959\Desktop\test\target\classes com.ayang818.test.Test

这是我运行一个很简单的程序,IDEA 帮我们拼出来的命令行参数,其中 -Dfile.encoding 和 -classpath 我们都很熟悉,一个是指定编码方式,另一个是指定 classpath 路径。但是有一个我们可能很陌生的参数,叫做 -javaagent , agent 翻译成中文是代理的意思。于是我开始了一天的探究过程。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×