【问题标题】:How do I start my Java program with more than one java agent?如何使用多个 Java 代理启动我的 Java 程序?
【发布时间】:2009-05-16 15:44:27
【问题描述】:

我知道如何使用 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

但是没有成功。

有解决我问题的答案吗?

谢谢。

【问题讨论】:

    标签: jvm javaagents


    【解决方案1】:

    两个javaagent参数怎么样?

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

    【讨论】:

      【解决方案2】:

      看来您可以通过使用多个参数来做到这一点。来自documentation

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

      -javaagent:jarpath[=options] 
      

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

      (我的重点)

      【讨论】:

        【解决方案3】:

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

        build.xml

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

        【讨论】:

          【解决方案4】:

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

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

          详情请见https://github.com/fabric8io/agent-bond/blob/master/README.md

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-08-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-06-05
            相关资源
            最近更新 更多