public class Process
extends Object
GDK enhancements for Process.
| Type Params | Return Type | Name and description |
|---|---|---|
|
public void |
closeStreams()Closes all the streams associated with the process (ignoring any IOExceptions). |
|
public Thread |
consumeProcessErrorStream(OutputStream err)Gets the error stream from a process and reads it to keep the process from blocking due to a full buffer. |
|
public Thread |
consumeProcessErrorStream(Appendable error)Gets the error stream from a process and reads it to keep the process from blocking due to a full buffer. |
|
public void |
consumeProcessOutput()Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. |
|
public void |
consumeProcessOutput(Appendable output, Appendable error)Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. |
|
public void |
consumeProcessOutput(OutputStream output, OutputStream error)Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. |
|
public Thread |
consumeProcessOutputStream(Appendable output)Gets the output stream from a process and reads it to keep the process from blocking due to a full output buffer. |
|
public Thread |
consumeProcessOutputStream(OutputStream output)Gets the output stream from a process and reads it to keep the process from blocking due to a full output buffer. |
|
public InputStream |
getErr()An alias method so that a process appears similar to System.out, System.in, System.err; you can use process.in, process.out, process.err in a similar fashion. |
|
public InputStream |
getIn()An alias method so that a process appears similar to System.out, System.in, System.err; you can use process.in, process.out, process.err in a similar fashion. |
|
public OutputStream |
getOut()An alias method so that a process appears similar to System.out, System.in, System.err; you can use process.in, process.out, process.err in a similar fashion. |
|
public String |
getText()Read the text of the output stream of the Process. |
|
public Writer |
leftShift(Object value)Overloads the left shift operator (<<) to provide an append mechanism to pipe data to a Process. |
|
public OutputStream |
leftShift(byte[] value)Overloads the left shift operator to provide an append mechanism to pipe into a Process |
|
public Process |
onExit(Closure action)Registers a closure to be called when the process terminates. |
|
public Process |
or(Process right)Overrides the or operator to allow one Process to asynchronously pipe data to another Process. |
|
public Process |
pipeTo(Process right)Allows one Process to asynchronously pipe data to another Process. |
|
public void |
waitForOrKill(long numberOfMillis)Wait for the process to finish during a certain amount of time, otherwise stops the process. |
|
public void |
waitForProcessOutput()Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. |
|
public void |
waitForProcessOutput(Appendable output, Appendable error)Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. |
|
public void |
waitForProcessOutput(OutputStream output, OutputStream error)Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. |
|
public ProcessResult |
waitForResult()Executes the process and waits for it to complete, capturing the standard output, standard error, and exit code into a ProcessResult. |
|
public ProcessResult |
waitForResult(long timeout, TimeUnit unit)Executes the process and waits for it to complete within the given timeout, capturing the standard output, standard error, and exit code into a ProcessResult. |
|
public void |
withOutputStream(Closure closure)Creates a new buffered OutputStream as stdin for this process, passes it to the closure, and ensures the stream is flushed and closed after the closure returns. |
|
public void |
withWriter(Closure closure)Creates a new BufferedWriter as stdin for this process, passes it to the closure, and ensures the stream is flushed and closed after the closure returns. |
| Methods inherited from class | Name |
|---|---|
class Object |
addShutdownHook, any, any, asBoolean, asType, collect, collect, collect, dump, each, eachMatch, eachMatch, eachWithIndex, every, every, find, find, findAll, findAll, findIndexOf, findIndexOf, findIndexValues, findIndexValues, findLastIndexOf, findLastIndexOf, findResult, findResult, findResult, findResult, getAt, getMetaClass, getMetaPropertyValues, getProperties, grep, grep, hasProperty, identity, inject, inject, inspect, invokeMethod, is, isCase, isNotCase, iterator, metaClass, print, print, printf, printf, println, println, println, putAt, respondsTo, respondsTo, setMetaClass, sleep, sleep, split, sprintf, sprintf, stream, tap, toString, use, use, use, with, with, withCloseable, withCloseable, withMethodClosure, withStream, withStream, withTraits |
Closes all the streams associated with the process (ignoring any IOExceptions).
Gets the error stream from a process and reads it to keep the process from blocking due to a full buffer. The processed stream data is appended to the supplied OutputStream. A new Thread is started, so this method will return immediately.
err - an OutputStream to capture the process stderrGets the error stream from a process and reads it to keep the process from blocking due to a full buffer. The processed stream data is appended to the supplied Appendable. A new Thread is started, so this method will return immediately.
error - an Appendable to capture the process stderrGets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. The stream data is thrown away but blocking due to a full output buffer is avoided. Use this method if you don't care about the standard or error output and just want the process to run silently - use carefully however, because since the stream data is thrown away, it might be difficult to track down when something goes wrong. For this, two Threads are started, so this method will return immediately.
Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. The processed stream data is appended to the supplied Appendable. For this, two Threads are started, so this method will return immediately. The threads will not be join()ed, even if waitFor() is called. To wait for the output to be fully consumed call waitForProcessOutput().
output - an Appendable to capture the process stdouterror - an Appendable to capture the process stderrGets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. The processed stream data is appended to the supplied OutputStream. For this, two Threads are started, so this method will return immediately. The threads will not be join()ed, even if waitFor() is called. To wait for the output to be fully consumed call waitForProcessOutput().
output - an OutputStream to capture the process stdouterror - an OutputStream to capture the process stderrGets the output stream from a process and reads it to keep the process from blocking due to a full output buffer. The processed stream data is appended to the supplied Appendable. A new Thread is started, so this method will return immediately.
output - an Appendable to capture the process stdoutGets the output stream from a process and reads it to keep the process from blocking due to a full output buffer. The processed stream data is appended to the supplied OutputStream. A new Thread is started, so this method will return immediately.
output - an OutputStream to capture the process stdoutAn alias method so that a process appears similar to System.out, System.in, System.err; you can use process.in, process.out, process.err in a similar fashion.
An alias method so that a process appears similar to System.out, System.in, System.err; you can use process.in, process.out, process.err in a similar fashion.
An alias method so that a process appears similar to System.out, System.in, System.err; you can use process.in, process.out, process.err in a similar fashion.
Read the text of the output stream of the Process. Closes all the streams associated with the process after retrieving the text.
Overloads the left shift operator (<<) to provide an append mechanism to pipe data to a Process.
value - a value to appendOverloads the left shift operator to provide an append mechanism to pipe into a Process
value - data to appendRegisters a closure to be called when the process terminates. Uses Process.onExit to asynchronously notify completion.
"cmd".execute().onExit { proc ->
println "Exited with code: ${proc.exitValue()}"
}
action - a closure to call with the completed ProcessOverrides the or operator to allow one Process to asynchronously pipe data to another Process.
right - a Process to pipe output toAllows one Process to asynchronously pipe data to another Process.
right - a Process to pipe output toWait for the process to finish during a certain amount of time, otherwise stops the process.
numberOfMillis - the number of milliseconds to wait before stopping the processGets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. The stream data is thrown away but blocking due to a full output buffer is avoided. Use this method if you don't care about the standard or error output and just want the process to run silently - use carefully however, because since the stream data is thrown away, it might be difficult to track down when something goes wrong. For this, two Threads are started, but join()ed, so we wait. As implied by the waitFor... name, we also wait until we finish as well. Finally, the output and error streams are closed.
Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. The processed stream data is appended to the supplied Appendable. For this, two Threads are started, but join()ed, so we wait. As implied by the waitFor... name, we also wait until we finish as well. Finally, the input, output and error streams are closed.
output - an Appendable to capture the process stdouterror - an Appendable to capture the process stderrGets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. The processed stream data is appended to the supplied OutputStream. For this, two Threads are started, but join()ed, so we wait. As implied by the waitFor... name, we also wait until we finish as well. Finally, the input, output and error streams are closed.
output - an OutputStream to capture the process stdouterror - an OutputStream to capture the process stderrExecutes the process and waits for it to complete, capturing the standard output, standard error, and exit code into a ProcessResult.
def result = "ls -la".execute().waitForResult()
if (result.ok) println result.out
else System.err.println result.err
Executes the process and waits for it to complete within the given timeout, capturing the standard output, standard error, and exit code into a ProcessResult. If the process does not complete within the timeout, it is forcibly destroyed.
def result = "cmd".execute().waitForResult(30, TimeUnit.SECONDS)
timeout - the maximum time to waitunit - the time unit of the timeout argumentCreates a new buffered OutputStream as stdin for this process, passes it to the closure, and ensures the stream is flushed and closed after the closure returns. A new Thread is started, so this method will return immediately.
closure - a closureCreates a new BufferedWriter as stdin for this process, passes it to the closure, and ensures the stream is flushed and closed after the closure returns. A new Thread is started, so this method will return immediately.
closure - a closure