Package net.bytebuddy.agent
Class Attacher
- java.lang.Object
-
- net.bytebuddy.agent.Attacher
-
public class Attacher extends java.lang.Object
A Java program that attaches a Java agent to an external process.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
ATTACH_METHOD_NAME
The name of theattach
method of theVirtualMachine
class.private static java.lang.String
DETACH_METHOD_NAME
The name of thedetach
method of theVirtualMachine
class.private static java.lang.String
LOAD_AGENT_METHOD_NAME
The name of theloadAgent
method of theVirtualMachine
class.private static java.lang.String
LOAD_AGENT_PATH_METHOD_NAME
The name of theloadAgentPath
method of theVirtualMachine
class.private static java.lang.Object
STATIC_MEMBER
Base for access to a reflective member to make the code more readable.
-
Constructor Summary
Constructors Modifier Constructor Description private
Attacher()
The attacher provides onlystatic
utility methods and should not be instantiated.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description protected static void
install(java.lang.Class<?> virtualMachineType, java.lang.String processId, java.lang.String agent, boolean isNative, java.lang.String argument)
Installs a Java agent on a target VM.static void
main(java.lang.String[] args)
Runs the attacher as a Java application.
-
-
-
Field Detail
-
STATIC_MEMBER
private static final java.lang.Object STATIC_MEMBER
Base for access to a reflective member to make the code more readable.
-
ATTACH_METHOD_NAME
private static final java.lang.String ATTACH_METHOD_NAME
The name of theattach
method of theVirtualMachine
class.- See Also:
- Constant Field Values
-
LOAD_AGENT_METHOD_NAME
private static final java.lang.String LOAD_AGENT_METHOD_NAME
The name of theloadAgent
method of theVirtualMachine
class.- See Also:
- Constant Field Values
-
LOAD_AGENT_PATH_METHOD_NAME
private static final java.lang.String LOAD_AGENT_PATH_METHOD_NAME
The name of theloadAgentPath
method of theVirtualMachine
class.- See Also:
- Constant Field Values
-
DETACH_METHOD_NAME
private static final java.lang.String DETACH_METHOD_NAME
The name of thedetach
method of theVirtualMachine
class.- See Also:
- Constant Field Values
-
-
Method Detail
-
main
public static void main(java.lang.String[] args)
Runs the attacher as a Java application.- Parameters:
args
- A list containing the fully qualified name of the virtual machine type, the process id, the fully qualified name of the Java agent jar followed by an empty string if the argument to the agent isnull
or any number of strings where the first argument is proceeded by any single character which is stripped off.
-
install
protected static void install(java.lang.Class<?> virtualMachineType, java.lang.String processId, java.lang.String agent, boolean isNative, java.lang.String argument) throws java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException
Installs a Java agent on a target VM.- Parameters:
virtualMachineType
- The virtual machine type to use for the external attachment.processId
- The id of the process being target of the external attachment.agent
- The Java agent to attach.isNative
-true
if the agent is native.argument
- The argument to provide ornull
if no argument is provided.- Throws:
java.lang.NoSuchMethodException
- If the virtual machine type does not define an expected method.java.lang.reflect.InvocationTargetException
- If the virtual machine type raises an error.java.lang.IllegalAccessException
- If a method of the virtual machine type cannot be accessed.
-
-