둘 이상의 Java 에이전트로 Java 프로그램을 시작하려면 어떻게합니까?


81

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

그러나 성공하지 못했습니다.

내 문제를 해결할 답이 있습니까?

감사합니다.

답변:


142

두 개의 javaagent매개 변수는 어떻습니까?

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

56

여러 인수를 사용하여이를 수행 할 수있는 것처럼 보입니다. 로부터 문서 :

명령 줄 인터페이스가있는 구현에서 에이전트는 다음 옵션을 명령 줄에 추가하여 시작됩니다.

-javaagent:jarpath[=options] 

jarpath 는 에이전트 JAR 파일의 경로입니다. options 는 에이전트 옵션입니다. 이 스위치는 동일한 명령 줄에서 여러 번 사용할 수 있으므로 여러 에이전트를 만들 수 있습니다. 둘 이상의 에이전트가 동일한 jarpath를 사용할 수 있습니다. 에이전트 JAR 파일은 JAR 파일 사양을 준수해야합니다.

(내 강조)


2

위의 답변에 추가하여 ant를 사용하고 있고 서버를 시작 <jvmargs />하기 -javaagent위해 두 개 이상의 jar를 포함하려는 경우 여기에 내가 한 방법이 있습니다.

build.xml

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

1

여러 Java 에이전트를 지원하는 것을 목표로하는 새 프로젝트가 있습니다. 현재는 특정 항목으로 제한됩니다.

본드 요원은 여러 다른 요원을 포장하고 파견하는 슈퍼 요원입니다. 이렇게하면 단일 구성 데이터 집합 (여러 개별 부분 포함)을 사용하여 JVM 내에 단일 에이전트 만 설치하면됩니다.

자세한 내용은 https://github.com/fabric8io/agent-bond/blob/master/README.md 를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.