org.codehaus.plexus.util.cli
public class Commandline extends Object implements Cloneable
Commandline objects help handling command lines specifying processes to execute.
The class can be used to define a command line as nested elements or as a helper to define a command line by an application.
<someelement>
<acommandline executable="/executable/to/run">
<argument value="argument 1" />
<argument line="argument_1 argument_2 argument_3" />
<argument value="argument 4" />
</acommandline>
</someelement>
The element someelement
must provide a method
createAcommandline
which returns an instance of this class.
Nested Class Summary | |
---|---|
static class | Commandline.Argument
Used for nested xml command line definitions. |
class | Commandline.Marker
Class to keep track of the position of an Argument. |
Field Summary | |
---|---|
protected Vector | arguments |
protected Vector | envVars |
protected String | executable |
boolean | newEnvironment |
protected static String | OS_NAME |
long | pid |
Shell | shell |
File | workingDir |
protected static String | WINDOWS |
Constructor Summary | |
---|---|
Commandline(String toProcess)
Create a new command line object.
| |
Commandline()
Create a new command line object.
|
Method Summary | |
---|---|
void | addArguments(String[] line) |
void | addEnvironment(String name, String value)
Add an environment variable |
void | addSystemEnvironment()
Add system environment variables |
void | clear()
Clear out the whole command line. |
void | clearArgs()
Clear out the arguments but leave the executable in place for another operation. |
Object | clone() |
Commandline.Argument | createArgument()
Creates an argument object.
|
Commandline.Argument | createArgument(boolean insertAtStart)
Creates an argument object and adds it to our list of args.
|
Commandline.Marker | createMarker()
Return a marker.
|
Process | execute()
Executes the command. |
String[] | getArguments()
Returns all arguments defined by addLine ,
addValue or the argument object. |
String[] | getCommandline()
Returns the executable and all defined arguments. |
String[] | getCurrentEnvironment()
Return the current list of environment variables or null if user
doesn't have add any variable.
|
String[] | getEnvironments()
Return the list of environment variables |
String | getExecutable() |
long | getPid() |
Shell | getShell()
Get the shell to be used in this command line.
|
String[] | getShellCommandline()
Returns the shell, executable and all defined arguments. |
Properties | getSystemEnvVars() |
File | getWorkingDirectory() |
static String | quoteArgument(String argument) Put quotes around the given String if necessary. If the argument doesn't include spaces or quotes, return it as is. |
void | setDefaultShell() Sets the shell or command-line interpretor for the detected operating system, and the shell arguments. |
void | setExecutable(String executable)
Sets the executable to run. |
void | setPid(long pid) |
void | setShell(Shell shell)
Allows to set the shell to be used in this command line.
|
void | setWorkingDirectory(String path)
Sets execution directory. |
int | size() |
String | toString() |
static String | toString(String[] line) |
static String[] | translateCommandline(String toProcess) |
Parameters: toProcess
Each commandline object has at most one instance of the
argument class. This method calls
this.createArgument(false)
.
Returns: the argument object.
See Also: Commandline
Each commandline object has at most one instance of the argument class.
Parameters: insertAtStart if true, the argument is inserted at the beginning of the list of args, otherwise it is appended.
This marker can be used to locate a position on the commandline - to insert something for example - when all parameters have been set.
addLine
,
addValue
or the argument object.UNKNOWN: return the list of proc env variables with user env variables if user add some var.
Since: 1.2
Put quotes around the given String if necessary.
If the argument doesn't include spaces or quotes, return it as is. If it contains double quotes, use single quotes - else surround the argument by double quotes.
Throws: CommandLineException if the argument contains both, single and double quotes.
Sets the shell or command-line interpretor for the detected operating system, and the shell arguments.
Parameters: shell
Since: 1.2