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

如何将参数传递给检测代理?该文档仅指出:java.lang.instrument

-javaagent:jarpath[=options]

我可以选择哪些选项


答案 1

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

java -javaagent:/path/to/agent.jar=argumentstring -cp jar-under-test.jar Foo.Main

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

public static void premain(String agentArgument,Instrumentation instrumentation){
  // args passed in 'agentArgument'
}

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


答案 2