Package gw.util

Class ProcessStarter

java.lang.Object
gw.util.ProcessStarter

@Deprecated public class ProcessStarter extends Object
Deprecated.
use ProcessRunner instead
  • Field Details

    • IGNORE

      public static final ProcessStarter.OutputHandler IGNORE
      Deprecated.
    • CONSOLE_NEWLINE

      private static final String CONSOLE_NEWLINE
      Deprecated.
    • _pb

      private final ProcessBuilder _pb
      Deprecated.
    • _withCMD

      private boolean _withCMD
      Deprecated.
    • _inludeStdErrInOutput

      private boolean _inludeStdErrInOutput
      Deprecated.
    • _dontThrowOnNonZeroReturn

      private boolean _dontThrowOnNonZeroReturn
      Deprecated.
    • _rawCmd

      private final String _rawCmd
      Deprecated.
    • _stdOut

      private Writer _stdOut
      Deprecated.
    • _stdErr

      private Writer _stdErr
      Deprecated.
    • _charset

      private String _charset
      Deprecated.
  • Constructor Details

    • ProcessStarter

      public ProcessStarter(String command)
      Deprecated.
  • Method Details

    • parseCommandLine

      private List<String> parseCommandLine(String str)
      Deprecated.
    • exec

      public String exec()
      Deprecated.

      Executes the given command as if it had been executed from the command line of the host OS (cmd.exe on windows, /bin/sh on *nix) and returns all content sent to standard out as a string. If the command finishes with a non zero return value, a CommandFailedException is thrown.

      Content sent to standard error by the command will be forwarded to standard error for this JVM.

      This method blocks on the execution of the command.

      Example Usages:

         var currentDir = Shell.exec( "dir" ) // windows
         var currentDir = Shell.exec( "ls" )  // *nix
         Shell.exec( "rm -rf " + directoryToNuke )
       

      Returns:
      the content of standard out
      Throws:
      CommandFailedException - if the process finishes with a non-zero return value
    • flush

      private void flush(Writer stdOut)
      Deprecated.
    • execWithPipe

      public void execWithPipe()
      Deprecated.

      Executes the given command as if it had been executed from the command line of the host OS (cmd.exe on windows, /bin/sh on *nix) and pipes all data sent to this processes stdout, stderr, and stdin. If the command finishes with a non zero return value, a CommandFailedException is thrown.

      Stdout and Stderr from the sub-process will be piped to the current process' stdout and stderr. Any input in this processes stdin will be piped to the sub-process' stdin

      Content sent to standard error by the command will be forwarded to standard error for this JVM.

      This method blocks on the execution of the command.

      Example Usages:

         Shell.execWithPipe( "read \"are you there?\"" )
       

      Throws:
      CommandFailedException - if the process finishes with a non-zero return value
    • startImpl

      private Process startImpl() throws IOException
      Deprecated.
      Throws:
      IOException
    • processWithHandler

      public void processWithHandler(ProcessStarter.ProcessHandler handler)
      Deprecated.

      Executes the given command as if it had been executed from the command line of the host OS (cmd.exe on windows, /bin/sh on *nix) and calls the provided handler with the newly created process.

      NOTE: In gosu, you should take advantage of the block-to-interface coercion provided and pass blocks in as the handler. See the examples below.

      Parameters:
      handler - the process handler for this process.
    • start

      public Process start() throws IOException
      Deprecated.
      Starts a new process using the attributes of this process starter.

      The new process will invoke the command and arguments given by ProcessBuilder.command(), in a working directory as given by getDirectory(), with a process environment as given by getEnvironment().

      This method calls directly to ProcessBuilder.start.

      Returns:
      A new Process object for managing the subprocess
      Throws:
      NullPointerException - If an element of the command list is null
      IndexOutOfBoundsException - If the command is an empty list (has size 0)
      SecurityException - If a security manager exists and its checkExec method doesn't allow creation of the subprocess
      IOException - If an I/O error occurs
      See Also:
    • getEnvironment

      public Map<String,String> getEnvironment()
      Deprecated.
      Returns a modifiable string map view of this process' environment. Whenever a process starter is created, the environment is initialized to a copy of the current process environment (see System.getenv()). Subprocesses subsequently started by this object will use this map as their environment.

      The returned object may be modified using ordinary Map operations. These modifications will be visible to subprocesses. Two ProcessStarter instances always contain independent process environments, so changes to the returned map will never be reflected in any other ProcessStarter instance or the values returned by System.getenv. There are many system-dependant restrictions placed on the returned map. See ProcessBuilder for more information

      Returns:
      This process environment
      Throws:
      SecurityException - If a security manager exists and its checkPermission method doesn't allow access to the process environment
      See Also:
    • getDirectory

      public File getDirectory()
      Deprecated.
      Returns this process' working directory. Subprocesses subsequently started by this object will use this as their working directory. The returned value may be null -- this means to use the working directory of the current Java process, usually the directory named by the system property user.dir, as the working directory of the child process.

      Returns:
      This process's working directory
    • setDirectory

      public void setDirectory(File directory)
      Deprecated.
      Sets this process' working directory. Subprocesses subsequently started by this object will use this as their working directory. The returned value may be null -- this means to use the working directory of the current Java process, usually the directory named by the system property user.dir, as the working directory of the child process.

      Parameters:
      directory - This process' working directory
    • handleCommand

      private void handleCommand(Writer stdOut, Writer stdErr)
      Deprecated.
    • indent

      private static String indent(String string)
      Deprecated.
    • withCharset

      public ProcessStarter withCharset(String cs)
      Deprecated.
    • withCMD

      public ProcessStarter withCMD()
      Deprecated.
      The process built up will use CMD if this is a windows platform. This is necessary because on windows certain basic commands such as "dir" are not programs, but rather are built into CMD. Thanks, Microsoft.
    • includeStdErrInOutput

      public ProcessStarter includeStdErrInOutput()
      Deprecated.
      If called, this ProcessStarter will include the StdErr output in the return string of this process. Note that this has no effect if withStdErrHandler(OutputHandler) is called.
      Returns:
      this object for chaining
    • doNotThrowOnNonZeroReturnVal

      public ProcessStarter doNotThrowOnNonZeroReturnVal()
      Deprecated.
      If called, this ProcessStarter will not throw an exception if the underlying process exits with a non-zero return code
      Returns:
      this object for chaining
    • withStdErrHandler

      public ProcessStarter withStdErrHandler(ProcessStarter.OutputHandler stdErrHandler)
      Deprecated.
      Parameters:
      stdErrHandler - handler that will be called with every line of output to stderr
      Returns:
      this object for chaining
    • withStdOutHandler

      public ProcessStarter withStdOutHandler(ProcessStarter.OutputHandler stdOutHandler)
      Deprecated.
      Parameters:
      stdOutHandler - handler that will be called with every line of output to stdout
      Returns:
      this object for chaining