public class ProcessExecutor
extends java.lang.Object
Example :
ProcessExecutor executor = new ProcessExecutor("/bin/echo", "Hello World!"); executor.setCaptureOutput(true); ProcessExecutionResult result = executor.execute(); assertEquals(0, result.getExitValue()); assertFalse(result.hasTimedOut()); assertEquals("Hello World!", result.getStdout().trim()); assertEquals("", result.getStderr());Warning : A default timeout value of 10 minutes is defined by
DEFAULT_TIMEOUT
constant.setTimeout(long)
.Modifier and Type | Class and Description |
---|---|
class |
ProcessExecutor.ProcessExecutionResult
Holds process execution result.
|
Modifier and Type | Field and Description |
---|---|
static long |
DEFAULT_TIMEOUT
Default value in milliseconds for the maximum execution time of a
Process before is destroyed : 600000L
|
Constructor and Description |
---|
ProcessExecutor(java.util.List<java.lang.String> command)
Constructs a process executor with the specified operating
system program and arguments.
|
ProcessExecutor(java.lang.String... command)
Constructs a process executor with the specified operating
system program and arguments.
|
Modifier and Type | Method and Description |
---|---|
ProcessExecutor.ProcessExecutionResult |
execute()
Starts a new process using the attributes of this process executor and
wait for its termination (either naturally or through the default timeout).
|
java.lang.String |
getName()
Retrieve the name used to prefix any logs message and for threads name
|
long |
getTimeout()
Retrieve the maximum duration in milliseconds above which process is be stopped.
|
boolean |
isCaptureOutput()
Check if standard output and standard error have been requested for capture.
|
void |
setCaptureOutput(boolean captureOutput)
Set whether the standar output and standard error should be
captured in an internal string for use after process execution.
|
void |
setName(java.lang.String name)
Set the name used to prefix any logs message and for threads name
|
void |
setTimeout(long timeout)
Set the maximum duration in milliseconds above which process is stopped.
|
static java.lang.String[] |
splitCommandLine(java.lang.String cmdLine)
Split the specified command line String into a String array.
|
public static final long DEFAULT_TIMEOUT
public ProcessExecutor(java.util.List<java.lang.String> command)
command
list. Subsequent
updates to the list will be reflected in the state of the
process builder. It is not checked whether
command
corresponds to a valid operating system
command.command
- The list containing the program and its argumentsjava.lang.NullPointerException
- If the argument is null
public ProcessExecutor(java.lang.String... command)
command
array, in the same order. It is not checked whether
command
corresponds to a valid operating system
command.command
- A string array containing the program and its argumentspublic void setCaptureOutput(boolean captureOutput)
Default value is false, unless log level has been set to the TRACE level.
captureOutput
- true to capture, false to ignore command outputpublic boolean isCaptureOutput()
public void setName(java.lang.String name)
name
- a short string identifying the purpose of this Executor eg : "MyFeature"public java.lang.String getName()
public void setTimeout(long timeout)
DEFAULT_TIMEOUT
timeout
- a duration in millisecond, 0 a negative value ofpublic long getTimeout()
If 0 was specified for timeout value, the default timeout is applied and this methods return the duration being applied
public ProcessExecutor.ProcessExecutionResult execute()
public static java.lang.String[] splitCommandLine(java.lang.String cmdLine)
Ensure any arguments enclosed in double quotes are kept as is.
cmdLine
- the command line to splitCopyright © 2001-2017 Jalios SA. All Rights Reserved.