Class VirtualMachine.ForHotSpot

java.lang.Object
net.bytebuddy.agent.VirtualMachine.AbstractBase
net.bytebuddy.agent.VirtualMachine.ForHotSpot
All Implemented Interfaces:
VirtualMachine
Enclosing interface:
VirtualMachine

public static class VirtualMachine.ForHotSpot extends VirtualMachine.AbstractBase
A virtual machine attachment implementation for a HotSpot VM or any compatible JVM.
  • Field Details

  • Constructor Details

    • ForHotSpot

      protected ForHotSpot(VirtualMachine.ForHotSpot.Connection connection)
      Creates a new virtual machine connection for HotSpot.
      Parameters:
      connection - The virtual machine connection.
  • Method Details

    • attach

      public static VirtualMachine attach(String processId, VirtualMachine.ForHotSpot.Connection.Factory connectionFactory) throws IOException
      Attaches to the supplied process id using the supplied connection factory.
      Parameters:
      processId - The process id.
      connectionFactory - The connection factory to use.
      Returns:
      A suitable virtual machine implementation.
      Throws:
      IOException - If an IO exception occurs during establishing the connection.
    • checkHeader

      private static void checkHeader(VirtualMachine.ForHotSpot.Connection.Response response) throws IOException
      Checks the header of a response.
      Parameters:
      response - The response to check the header for.
      Throws:
      IOException - If an I/O exception occurs.
    • getSystemProperties

      public Properties getSystemProperties() throws IOException
      Loads the target VMs system properties.
      Returns:
      The target VM properties.
      Throws:
      IOException - If an I/O exception occurs.
    • getAgentProperties

      public Properties getAgentProperties() throws IOException
      Loads the target VMs agent properties.
      Returns:
      The target VM properties.
      Throws:
      IOException - If an I/O exception occurs.
    • getProperties

      private Properties getProperties(String command) throws IOException
      Loads properties of the target VM.
      Parameters:
      command - The command for fetching properties.
      Returns:
      The read properties.
      Throws:
      IOException - If an I/O exception occurs.
    • loadAgent

      public void loadAgent(String jarFile, @MaybeNull String argument) throws IOException
      Loads an agent into the represented virtual machine.
      Parameters:
      jarFile - The jar file to attach.
      argument - The argument to provide or null if no argument should be provided.
      Throws:
      IOException - If an I/O exception occurs.
    • loadAgentPath

      public void loadAgentPath(String path, @MaybeNull String argument) throws IOException
      Loads a native agent into the represented virtual machine.
      Parameters:
      path - The agent path.
      argument - The argument to provide or null if no argument should be provided.
      Throws:
      IOException - If an I/O exception occurs.
    • loadAgentLibrary

      public void loadAgentLibrary(String library, @MaybeNull String argument) throws IOException
      Loads a native agent library into the represented virtual machine.
      Parameters:
      library - The agent library.
      argument - The argument to provide or null if no argument should be provided.
      Throws:
      IOException - If an I/O exception occurs.
    • load

      protected void load(String file, boolean absolute, @MaybeNull String argument) throws IOException
      Loads an agent by the given command.
      Parameters:
      file - The Java agent or library to be loaded.
      absolute - true if the agent location is absolute.
      argument - The argument to the agent or null if no argument is given.
      Throws:
      IOException - If an I/O exception occurs.
    • startManagementAgent

      public void startManagementAgent(Properties properties) throws IOException
      Starts a JMX management agent.
      Parameters:
      properties - The properties to transfer to the JMX agent.
      Throws:
      IOException - If an I/O error occurs.
    • startLocalManagementAgent

      public String startLocalManagementAgent() throws IOException
      Starts a local management agent.
      Returns:
      The local connector address.
      Throws:
      IOException - If an I/O error occurs.
    • detach

      public void detach() throws IOException
      Detaches this virtual machine representation.
      Throws:
      IOException - If an I/O exception occurs.