我具有如下的主体,将代理附加到远程进程。
public static void premain(String args, Instrumentation instrumentation) {
System.out.println("Premain");
File file ;
try {
file = (new File("Agent.jar"));
ByteBuddyAgent.attach(file,"18467");
}
catch (Exception e)
{
e.printStackTrace();
}
}
这里,我想传递进程ID和其他几个参数。反正有做到这一点。看起来只需要一个参数。
java -javaagent:/path/to/agent.jar -cp jar-under-test.jar Foo.Main
我如何在这里传递论点?
您需要以您认为合适的任何方式对自变量进行编码。代替用于main
的参数的空格,例如使用逗号,但例如通过将它们加倍来转义所有现有的逗号。在代理中,用单个逗号分隔,然后反转结果段的转义。