Interface ProcessExecutor

  • All Known Implementing Classes:
    DefaultProcessExecutor

    @ThreadSafe
    public interface ProcessExecutor
    A facility that provides means for launching an external process, scraping its stdout and stderr in real-time and sending commands by means of its stdin.
    Since:
    1.39
    Author:
    Fabrizio Giudici
    See Also:
    DefaultProcessExecutor
    • Method Detail

      • withArguments

        @Nonnull
        ProcessExecutor withArguments​(@Nonnull
                                      java.lang.String... arguments)
        Adds some arguments to pass to the external process.
        Parameters:
        arguments - the arguments
        Returns:
        itself for chaining methods
      • withArgument

        @Nonnull
        ProcessExecutor withArgument​(@Nonnull
                                     java.lang.String argument)
        Adds a single argument to pass to the external process.
        Parameters:
        argument - the argument
        Returns:
        itself for chaining methods
      • start

        @Nonnull
        ProcessExecutor start()
                       throws java.io.IOException
        Starts the external process.
        Returns:
        itself for chaining methods
        Throws:
        java.io.IOException - in case of error
      • stop

        void stop()
        Stops the external process.
      • waitForCompletion

        @Nonnull
        ProcessExecutor waitForCompletion()
                                   throws java.io.IOException,
                                          java.lang.InterruptedException
        Waits for the termination of the external process.
        Returns:
        itself for chaining methods
        Throws:
        java.lang.InterruptedException - if the wait has been interrupted
        java.io.IOException - in case of I/O error
      • send

        @Nonnull
        ProcessExecutor send​(@Nonnull
                             java.lang.String string)
                      throws java.io.IOException
        Sends a string to the stdin of the running process. If a carriage return is needed, it must be explicitly placed in the string.
        Parameters:
        string - the string to send
        Returns:
        itself for chaining methods
        Throws:
        java.io.IOException - in case of I/O error