90

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

java -javaagent:myAgent.jar MyJavaProgram

但是如果我想添加 2 个或更多 Java 代理来检测我的程序怎么办?我不想为必须在 JVM 中加载的每个代理重新调用 java -javaagent:...。

我试过这样的事情:

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

或类似的东西:

java -javaagent:agentA.jar agentB.jar MyJavaProgram

但是没有成功。

有解决我问题的答案吗?

谢谢你。

4

4 回答 4

154

两个javaagent参数呢?

java -javaagent:agentA.jar -javaagent:agentB.jar MyJavaProgram
于 2009-05-16T15:50:38.833 回答
58

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

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

-javaagent:jarpath[=options] 

jarpath是代理 JAR 文件的路径。options是代理选项。此开关可以在同一命令行上多次使用,从而创建多个代理。多个代理可以使用相同的 jarpath。代理 JAR 文件必须符合 JAR 文件规范。

(我的重点)

于 2009-05-16T15:50:32.997 回答
2

除了上面的答案,如果您使用 ant 并且想要包含<jvmargs />多个 jar-javaagent来启动服务器,这就是我的做法,

构建.xml

<target name="blah">
...
    <jvmarg value="-javaagent:${jar1.path}" />
    <jvmarg value="-javaagent:${jar2.path}" />
...
</target>
于 2016-01-19T11:17:26.500 回答
1

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

邦德特工是一个超级特工,它对其他几个特工进行包装和派遣。这样,您只需在 JVM 中安装一个代理,其中包含一组配置数据(其中包含多个单独的部分)。

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

于 2017-07-27T05:25:04.807 回答