Search
Duplicate

Java Agent(-javaagent:)

javaagent란?

-javaagent:<jarpath>[=<options>] Java 프로그래밍 언어 에이전트를 로드합니다. java.lang.instrument를 참조하십시오
Java
복사
JVM 에서 동작하는 Java 어플리케이션으로 JVM의 다양한 이벤트를 전달받거나 정보 질의, 바이트코드 제어 등을 특정 API를 통하여 수행할 수 있습니다.

특징

Agent는 지정된 JVM의 실행 가능한 최초 진입점인 main 메서드를 가로채기 할 수 있습니다.
지정된 JVM에서 실행됩니다.
지정된 JVM의 동일한 System Class Loader내에서 로드됩니다.
지정된 JVM의 Security Policy 및 Context의 영향을 받는다.
실행시간에 동적으로 bytecode를 조작할 수 있습니다.

사용 메소드

public static void premain(String agentArgs, Instrumentation inst); public static void premain(String agentArgs);
Java
복사
Agent의 단일 진입점은 premain메서드를 구현하면 되고 바이트 코드를 포함한 추가적인 정보 수집 도구로 Instrumentation 인터페이스를 제공받을 수 있습니다.

MANIFEST

Java Agent 패키지는 일반적인 executable-jar 와 생성방식이 동일하지만 MANIFEST(META_INF/MANIFEST.MF)명세는 약간 차이가 있습니다.
Search
Agent Attributes
Property
Value
Bootstrap ClassLoader 로 로딩 될 에이전트가 사용하는 외부 라이브러리 명시
실행시점에 바이트 코드의 재정의 허용 여부 명시.
COUNT3

사용방법

1. Console Command

2. VM Parameter