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

发布于 2024-07-20 16:49:19 字数 439 浏览 8 评论 0原文

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

但没有成功。

有答案可以解决我的问题吗?

谢谢。

I'm aware of how to start a java progam with a java agent:

java -javaagent:myAgent.jar MyJavaProgram

But what if I want to add 2 or more java agents to instrument my program? I do not want to reinvoke the java -javaagent:... for every agent I have to load in JVM.

I've tried something like this :

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

or something like this:

java -javaagent:agentA.jar agentB.jar MyJavaProgram

But have no success.

Is there an answer to solve my problem ?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

荒芜了季节 2024-07-27 16:49:19

两个 javaagent 参数怎么样?

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

How about two javaagent parameters?

java -javaagent:agentA.jar -javaagent:agentB.jar MyJavaProgram
昔日梦未散 2024-07-27 16:49:19

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

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

-javaagent:jarpath[=选项]  
  

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

(我的重点)

It would appear you can do this by using multiple arguments. From the documentation:

On implementations with a command-line interface, an agent is started by adding this option to the command-line:

-javaagent:jarpath[=options] 

jarpath is the path to the agent JAR file. options is the agent options. This switch may be used multiple times on the same command-line, thus creating multiple agents. More than one agent may use the same jarpath. An agent JAR file must conform to the JAR file specification.

(my emphasis)

凌乱心跳 2024-07-27 16:49:19

添加到上面的答案,如果您使用 ant 并希望将 和多个 jar 包含到 -javaagent 中来启动服务器,以下是如何启动服务器我做到了,

build.xml

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

Adding to the above answers, if you are using ant and want to include <jvmargs /> with more than one jar to -javaagent to start the server, here's how I did it,

build.xml

<target name="blah">
...
    <jvmarg value="-javaagent:${jar1.path}" />
    <jvmarg value="-javaagent:${jar2.path}" />
...
</target>
暮年 2024-07-27 16:49:19

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

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

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

There is a new project with the goal to support multiple Java agents. Currently it is limited to specific ones.

Agent Bond is a super agent, which wraps and dispatches on several other agents. That way, you only have to install a single agent within your JVM with a single set of configuration data (which contains multiple separate parts).

See https://github.com/fabric8io/agent-bond/blob/master/README.md for details

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文