Class VirtualMachine.ForHotSpot

    • Field Detail

      • PROTOCOL_VERSION

        private static final java.lang.String PROTOCOL_VERSION
        The protocol version to use for communication.
        See Also:
        Constant Field Values
      • LOAD_COMMAND

        private static final java.lang.String LOAD_COMMAND
        The load command.
        See Also:
        Constant Field Values
      • INSTRUMENT_COMMAND

        private static final java.lang.String INSTRUMENT_COMMAND
        The instrument command.
        See Also:
        Constant Field Values
      • ARGUMENT_DELIMITER

        private static final java.lang.String ARGUMENT_DELIMITER
        A delimiter to be used for attachment.
        See Also:
        Constant Field Values
    • Constructor Detail

      • ForHotSpot

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

      • attach

        public static VirtualMachine attach​(java.lang.String processId,
                                            VirtualMachine.ForHotSpot.Connection.Factory connectionFactory)
                                     throws java.io.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:
        java.io.IOException - If an IO exception occurs during establishing the connection.
      • checkHeader

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

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

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

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

        public void loadAgent​(java.lang.String jarFile,
                              java.lang.String argument)
                       throws java.io.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:
        java.io.IOException - If an I/O exception occurs.
      • loadAgentPath

        public void loadAgentPath​(java.lang.String path,
                                  java.lang.String argument)
                           throws java.io.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:
        java.io.IOException - If an I/O exception occurs.
      • loadAgentLibrary

        public void loadAgentLibrary​(java.lang.String library,
                                     java.lang.String argument)
                              throws java.io.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:
        java.io.IOException - If an I/O exception occurs.
      • load

        protected void load​(java.lang.String file,
                            boolean absolute,
                            java.lang.String argument)
                     throws java.io.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:
        java.io.IOException - If an I/O exception occurs.
      • startManagementAgent

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

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

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