public class Shell
extends java.lang.Object
implements java.lang.Cloneable
Class that abstracts the Shell functionality, with subclases for shells that behave particularly, like
command.com
cmd.exe
Modifier and Type | Field and Description |
---|---|
private char |
argQuoteDelimiter |
private static char[] |
DEFAULT_QUOTING_TRIGGER_CHARS |
private java.lang.String |
executable |
private char |
exeQuoteDelimiter |
private boolean |
quotedArgumentsEnabled |
private boolean |
quotedExecutableEnabled |
private java.util.List<java.lang.String> |
shellArgs |
private java.lang.String |
shellCommand |
private boolean |
singleQuotedArgumentEscaped |
private boolean |
singleQuotedExecutableEscaped |
private java.lang.String |
workingDir |
Constructor and Description |
---|
Shell() |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
clone() |
(package private) char |
getArgumentQuoteDelimiter() |
(package private) java.util.List<java.lang.String> |
getCommandLine(java.lang.String executableParameter,
java.lang.String... argumentsParameter)
Get the command line for the provided executable and arguments in this shell
|
(package private) char[] |
getEscapeChars(boolean includeSingleQuote,
boolean includeDoubleQuote) |
java.lang.String |
getExecutable() |
(package private) char |
getExecutableQuoteDelimiter() |
(package private) java.lang.String |
getExecutionPreamble() |
(package private) char[] |
getQuotingTriggerChars() |
(package private) java.util.List<java.lang.String> |
getRawCommandLine(java.lang.String executableParameter,
java.lang.String... argumentsParameter) |
(package private) java.lang.String[] |
getShellArgs()
Get the shell arguments
|
(package private) java.util.List<java.lang.String> |
getShellArgsList() |
(package private) java.lang.String |
getShellCommand()
Get the command to execute the shell
|
java.util.List<java.lang.String> |
getShellCommandLine(java.lang.String... arguments)
Get the full command line to execute, including shell command, shell arguments,
executable and executable arguments
|
java.io.File |
getWorkingDirectory() |
(package private) java.lang.String |
getWorkingDirectoryAsString() |
protected boolean |
isDoubleQuotedArgumentEscaped() |
(package private) boolean |
isDoubleQuotedExecutableEscaped() |
(package private) boolean |
isQuotedArgumentsEnabled() |
(package private) boolean |
isQuotedExecutableEnabled() |
protected boolean |
isSingleQuotedArgumentEscaped() |
(package private) boolean |
isSingleQuotedExecutableEscaped() |
(package private) void |
setArgumentQuoteDelimiter(char argQuoteDelimiterParameter) |
void |
setExecutable(java.lang.String executable)
Sets the executable to run.
|
(package private) void |
setExecutableQuoteDelimiter(char exeQuoteDelimiterParameter) |
void |
setQuotedArgumentsEnabled(boolean quotedArgumentsEnabled) |
(package private) void |
setQuotedExecutableEnabled(boolean quotedExecutableEnabled) |
(package private) void |
setShellArgs(java.lang.String[] shellArgs)
Set the shell arguments when calling a command line (not the executable arguments)
(eg.
|
(package private) void |
setShellCommand(java.lang.String shellCommand)
Set the command to execute the shell (eg.
|
(package private) void |
setSingleQuotedArgumentEscaped(boolean singleQuotedArgumentEscaped) |
(package private) void |
setSingleQuotedExecutableEscaped(boolean singleQuotedExecutableEscaped) |
void |
setWorkingDirectory(java.io.File workingDirectory)
Sets execution directory.
|
void |
setWorkingDirectory(java.lang.String path)
Sets execution directory.
|
private static final char[] DEFAULT_QUOTING_TRIGGER_CHARS
private java.lang.String shellCommand
private final java.util.List<java.lang.String> shellArgs
private boolean quotedArgumentsEnabled
private java.lang.String executable
private java.lang.String workingDir
private boolean quotedExecutableEnabled
private boolean singleQuotedArgumentEscaped
private boolean singleQuotedExecutableEscaped
private char argQuoteDelimiter
private char exeQuoteDelimiter
void setShellCommand(java.lang.String shellCommand)
shellCommand
- The commandjava.lang.String getShellCommand()
void setShellArgs(java.lang.String[] shellArgs)
shellArgs
- the arguments to the shelljava.lang.String[] getShellArgs()
java.util.List<java.lang.String> getCommandLine(java.lang.String executableParameter, java.lang.String... argumentsParameter)
executableParameter
- executable that the shell has to callargumentsParameter
- arguments for the executable, not the shelljava.util.List<java.lang.String> getRawCommandLine(java.lang.String executableParameter, java.lang.String... argumentsParameter)
executableParameter
- Executable.argumentsParameter
- The arguments for the executable.char[] getQuotingTriggerChars()
java.lang.String getExecutionPreamble()
char[] getEscapeChars(boolean includeSingleQuote, boolean includeDoubleQuote)
protected boolean isDoubleQuotedArgumentEscaped()
protected boolean isSingleQuotedArgumentEscaped()
singleQuotedArgumentEscaped
boolean isDoubleQuotedExecutableEscaped()
boolean isSingleQuotedExecutableEscaped()
void setArgumentQuoteDelimiter(char argQuoteDelimiterParameter)
argQuoteDelimiterParameter
- argQuoteDelimiter
char getArgumentQuoteDelimiter()
void setExecutableQuoteDelimiter(char exeQuoteDelimiterParameter)
exeQuoteDelimiterParameter
- exeQuoteDelimiter
char getExecutableQuoteDelimiter()
public java.util.List<java.lang.String> getShellCommandLine(java.lang.String... arguments)
arguments
- arguments for the executable, not the shelljava.util.List<java.lang.String> getShellArgsList()
public void setQuotedArgumentsEnabled(boolean quotedArgumentsEnabled)
quotedArgumentsEnabled
- quotedArgumentsEnabled
boolean isQuotedArgumentsEnabled()
void setQuotedExecutableEnabled(boolean quotedExecutableEnabled)
boolean isQuotedExecutableEnabled()
public void setExecutable(java.lang.String executable)
executable
- The executable.public java.lang.String getExecutable()
public void setWorkingDirectory(java.lang.String path)
path
- The path which should be used as working directory.public void setWorkingDirectory(java.io.File workingDirectory)
workingDirectory
- The working directory.public java.io.File getWorkingDirectory()
java.lang.String getWorkingDirectoryAsString()
public java.lang.Object clone()
clone
in class java.lang.Object
void setSingleQuotedArgumentEscaped(boolean singleQuotedArgumentEscaped)
void setSingleQuotedExecutableEscaped(boolean singleQuotedExecutableEscaped)