如何用多个Java代理启动我的Java程序?

我知道如何用java代理启动java程序:

java -javaagent:myAgent.jar MyJavaProgram 

但是,如果我想添加2个或更多的Java代理来testing我的程序呢? 我不想重新激活java -javaagent:…对于每个必须在JVM中加载的代理。

我试过这样的事情:

 java -javaagent:agentA.jar, agentB.jar MyJavaProgram 

或者像这样的东西:

 java -javaagent:agentA.jar agentB.jar MyJavaProgram 

但是没有成功。

有没有解决我的问题的答案?

谢谢。

怎么样两个javaagent参数

 java -javaagent:agentA.jar -javaagent:agentB.jar MyJavaProgram 

看来你可以通过使用多个参数来做到这一点。 从文档 :

在具有命令行界面的实现上,通过将此选项添加到命令行来启动代理:

 -javaagent:jarpath[=options] 

jarpath是代理JAR文件的path。 选项是代理选项。 这个开关可以在同一个命令行中多次使用,从而创build多个代理 。 多个代理可能使用相同的jarpath。 代理JAR文件必须符合JAR文件规范。

(我的重点)

添加到上面的答案,如果你正在使用ant,并希望包含<jvmargs />与多个jar到-javaagent来启动服务器,这是我是如何做到的,

build.xml文件

 <target name="blah"> ... <jvmarg value="-javaagent:${jar1.path}" /> <jvmarg value="-javaagent:${jar2.path}" /> ... </target> 

有一个新项目的目标是支持多个Java代理。 目前仅限于特定的。

代理债券是一个超级代理,它包装和派遣在其他几个代理。 这样,您只需在一个configuration数据集(包含多个单独的部分)中在JVM中安装单个代理。

有关详细信息,请参阅https://github.com/fabric8io/agent-bond/blob/master/README.md

    Interesting Posts