如何将参数传递给Java检测代理?

Dun*_*nes 11 java instrumentation arguments javaagents

如何将参数传递给java.lang.instrument检测代理?文档简单地说明:

-javaagent:jarpath [=选项]

我可以选择哪些选项

Dun*_*nes 22

要将参数传递给Java代理,请在等号后附加它们:

java -javaagent:/path/to/agent.jar=argumentstring -cp jar-under-test.jar Foo.Main
Run Code Online (Sandbox Code Playgroud)

参数被视为单个字符串并传递给您的premain方法.您负责对参数进行任何进一步处理,例如拆分逗号或分隔key=value对.

public static void premain(String agentArgument,Instrumentation instrumentation){
  // args passed in 'agentArgument'
}
Run Code Online (Sandbox Code Playgroud)

注意:如果您没有向代理传递任何参数(即省略等号),则agentArgument参数将为null,而不是空字符串.