Package gw.util

Class ProcessStarter


  • @Deprecated
    public class ProcessStarter
    extends java.lang.Object
    Deprecated.
    use ProcessRunner instead
    • Field Detail

      • CONSOLE_NEWLINE

        private static final java.lang.String CONSOLE_NEWLINE
        Deprecated.
      • _pb

        private final java.lang.ProcessBuilder _pb
        Deprecated.
      • _withCMD

        private boolean _withCMD
        Deprecated.
      • _inludeStdErrInOutput

        private boolean _inludeStdErrInOutput
        Deprecated.
      • _dontThrowOnNonZeroReturn

        private boolean _dontThrowOnNonZeroReturn
        Deprecated.
      • _rawCmd

        private final java.lang.String _rawCmd
        Deprecated.
      • _stdOut

        private java.io.Writer _stdOut
        Deprecated.
      • _stdErr

        private java.io.Writer _stdErr
        Deprecated.
      • _charset

        private java.lang.String _charset
        Deprecated.
    • Constructor Detail

      • ProcessStarter

        public ProcessStarter​(java.lang.String command)
        Deprecated.
    • Method Detail

      • parseCommandLine

        private java.util.List<java.lang.String> parseCommandLine​(java.lang.String str)
        Deprecated.
      • exec

        public java.lang.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​(java.io.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 java.lang.Process startImpl()
                                     throws java.io.IOException
        Deprecated.
        Throws:
        java.io.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 java.lang.Process start()
                                throws java.io.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:
        java.lang.NullPointerException - If an element of the command list is null
        java.lang.IndexOutOfBoundsException - If the command is an empty list (has size 0)
        java.lang.SecurityException - If a security manager exists and its checkExec method doesn't allow creation of the subprocess
        java.io.IOException - If an I/O error occurs
        See Also:
        Runtime.exec(String[], String[], java.io.File), SecurityManager.checkExec(String)
      • getEnvironment

        public java.util.Map<java.lang.String,​java.lang.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:
        java.lang.SecurityException - If a security manager exists and its checkPermission method doesn't allow access to the process environment
        See Also:
        ProcessBuilder, System.getenv()
      • getDirectory

        public java.io.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​(java.io.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​(java.io.Writer stdOut,
                                   java.io.Writer stdErr)
        Deprecated.
      • indent

        private static java.lang.String indent​(java.lang.String string)
        Deprecated.
      • withCharset

        public ProcessStarter withCharset​(java.lang.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