Package org.apache.bookkeeper.util
Class Shell.ShellCommandExecutor
- java.lang.Object
-
- org.apache.bookkeeper.util.Shell
-
- org.apache.bookkeeper.util.Shell.ShellCommandExecutor
-
- Enclosing class:
- Shell
public static class Shell.ShellCommandExecutor extends Shell
A simple shell command executor.ShellCommandExecutor
should be used in cases where the output of the command needs no explicit parsing and where the command, working directory and the environment remains unchanged. The output of the command is stored as-is and is expected to be small.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.bookkeeper.util.Shell
Shell.ExitCodeException, Shell.ShellCommandExecutor
-
-
Field Summary
-
Fields inherited from class org.apache.bookkeeper.util.Shell
LOG, timeOutInterval, WINDOWS
-
-
Constructor Summary
Constructors Constructor Description ShellCommandExecutor(java.lang.String[] execString)
ShellCommandExecutor(java.lang.String[] execString, java.io.File dir)
ShellCommandExecutor(java.lang.String[] execString, java.io.File dir, java.util.Map<java.lang.String,java.lang.String> env)
ShellCommandExecutor(java.lang.String[] execString, java.io.File dir, java.util.Map<java.lang.String,java.lang.String> env, long timeout)
Create a new instance of the ShellCommandExecutor to execute a command.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
execute()
Execute the shell command.java.lang.String[]
getExecString()
Return an array containing the command name & its parameters.java.lang.String
getOutput()
Get the output of the shell command.protected void
parseExecResult(java.io.BufferedReader lines)
Parse the execution result.java.lang.String
toString()
Returns the commands of this instance.-
Methods inherited from class org.apache.bookkeeper.util.Shell
execCommand, execCommand, execCommand, getExitCode, getProcess, isTimedOut, run, setEnvironment, setWorkingDirectory
-
-
-
-
Constructor Detail
-
ShellCommandExecutor
public ShellCommandExecutor(java.lang.String[] execString)
-
ShellCommandExecutor
public ShellCommandExecutor(java.lang.String[] execString, java.io.File dir)
-
ShellCommandExecutor
public ShellCommandExecutor(java.lang.String[] execString, java.io.File dir, java.util.Map<java.lang.String,java.lang.String> env)
-
ShellCommandExecutor
public ShellCommandExecutor(java.lang.String[] execString, java.io.File dir, java.util.Map<java.lang.String,java.lang.String> env, long timeout)
Create a new instance of the ShellCommandExecutor to execute a command.- Parameters:
execString
- The command to execute with argumentsdir
- If not-null, specifies the directory which should be set as the current working directory for the command. If null, the current working directory is not modified.env
- If not-null, environment of the command will include the key-value pairs specified in the map. If null, the current environment is not modified.timeout
- Specifies the time in milliseconds, after which the command will be killed and the status marked as timedout. If 0, the command will not be timed out.
-
-
Method Detail
-
execute
public void execute() throws java.io.IOException
Execute the shell command.- Throws:
java.io.IOException
-
getExecString
public java.lang.String[] getExecString()
Description copied from class:Shell
Return an array containing the command name & its parameters.- Specified by:
getExecString
in classShell
-
parseExecResult
protected void parseExecResult(java.io.BufferedReader lines) throws java.io.IOException
Description copied from class:Shell
Parse the execution result.- Specified by:
parseExecResult
in classShell
- Throws:
java.io.IOException
-
getOutput
public java.lang.String getOutput()
Get the output of the shell command.
-
toString
public java.lang.String toString()
Returns the commands of this instance. Arguments with spaces in are presented with quotes round; other arguments are presented raw- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string representation of the object.
-
-