Package org.apache.commons.exec
Class CommandLine
- java.lang.Object
-
- org.apache.commons.exec.CommandLine
-
public class CommandLine extends java.lang.Object
CommandLine objects help handling command lines specifying processes to execute. The class can be used to a command line by an application.
-
-
Constructor Summary
Constructors Constructor Description CommandLine(java.io.File executable)
Create a command line without any arguments.CommandLine(java.lang.String executable)
Create a command line without any arguments.CommandLine(CommandLine other)
Copy constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description CommandLine
addArgument(java.lang.String argument)
Add a single argument.CommandLine
addArgument(java.lang.String argument, boolean handleQuoting)
Add a single argument.CommandLine
addArguments(java.lang.String addArguments)
Add multiple arguments.CommandLine
addArguments(java.lang.String[] addArguments)
Add multiple arguments.CommandLine
addArguments(java.lang.String[] addArguments, boolean handleQuoting)
Add multiple arguments.CommandLine
addArguments(java.lang.String addArguments, boolean handleQuoting)
Add multiple arguments.java.lang.String[]
getArguments()
Returns the expanded and quoted command line arguments.java.lang.String
getExecutable()
Returns the executable.java.util.Map<java.lang.String,?>
getSubstitutionMap()
boolean
isFile()
Was a file being used to set the executable?static CommandLine
parse(java.lang.String line)
Create a command line from a string.static CommandLine
parse(java.lang.String line, java.util.Map<java.lang.String,?> substitutionMap)
Create a command line from a string.void
setSubstitutionMap(java.util.Map<java.lang.String,?> substitutionMap)
Set the substitutionMap to expand variables in the command line.java.lang.String
toString()
Stringify operator returns the command line as a string.java.lang.String[]
toStrings()
Returns the command line as an array of strings.
-
-
-
Constructor Detail
-
CommandLine
public CommandLine(java.lang.String executable)
Create a command line without any arguments.- Parameters:
executable
- the executable
-
CommandLine
public CommandLine(java.io.File executable)
Create a command line without any arguments.- Parameters:
executable
- the executable file
-
CommandLine
public CommandLine(CommandLine other)
Copy constructor.- Parameters:
other
- the instance to copy
-
-
Method Detail
-
parse
public static CommandLine parse(java.lang.String line)
Create a command line from a string.- Parameters:
line
- the first element becomes the executable, the rest the arguments- Returns:
- the parsed command line
- Throws:
java.lang.IllegalArgumentException
- If line is null or all whitespace
-
parse
public static CommandLine parse(java.lang.String line, java.util.Map<java.lang.String,?> substitutionMap)
Create a command line from a string.- Parameters:
line
- the first element becomes the executable, the rest the argumentssubstitutionMap
- the name/value pairs used for substitution- Returns:
- the parsed command line
- Throws:
java.lang.IllegalArgumentException
- If line is null or all whitespace
-
getExecutable
public java.lang.String getExecutable()
Returns the executable.- Returns:
- The executable
-
isFile
public boolean isFile()
Was a file being used to set the executable?- Returns:
- true if a file was used for setting the executable
-
addArguments
public CommandLine addArguments(java.lang.String[] addArguments)
Add multiple arguments. Handles parsing of quotes and whitespace.- Parameters:
addArguments
- An array of arguments- Returns:
- The command line itself
-
addArguments
public CommandLine addArguments(java.lang.String[] addArguments, boolean handleQuoting)
Add multiple arguments.- Parameters:
addArguments
- An array of argumentshandleQuoting
- Add the argument with/without handling quoting- Returns:
- The command line itself
-
addArguments
public CommandLine addArguments(java.lang.String addArguments)
Add multiple arguments. Handles parsing of quotes and whitespace. Please note that the parsing can have undesired side-effects therefore it is recommended to build the command line incrementally.- Parameters:
addArguments
- An string containing multiple arguments.- Returns:
- The command line itself
-
addArguments
public CommandLine addArguments(java.lang.String addArguments, boolean handleQuoting)
Add multiple arguments. Handles parsing of quotes and whitespace. Please note that the parsing can have undesired side-effects therefore it is recommended to build the command line incrementally.- Parameters:
addArguments
- An string containing multiple arguments.handleQuoting
- Add the argument with/without handling quoting- Returns:
- The command line itself
-
addArgument
public CommandLine addArgument(java.lang.String argument)
Add a single argument. Handles quoting.- Parameters:
argument
- The argument to add- Returns:
- The command line itself
- Throws:
java.lang.IllegalArgumentException
- If argument contains both single and double quotes
-
addArgument
public CommandLine addArgument(java.lang.String argument, boolean handleQuoting)
Add a single argument.- Parameters:
argument
- The argument to addhandleQuoting
- Add the argument with/without handling quoting- Returns:
- The command line itself
-
getArguments
public java.lang.String[] getArguments()
Returns the expanded and quoted command line arguments.- Returns:
- The quoted arguments
-
getSubstitutionMap
public java.util.Map<java.lang.String,?> getSubstitutionMap()
- Returns:
- the substitution map
-
setSubstitutionMap
public void setSubstitutionMap(java.util.Map<java.lang.String,?> substitutionMap)
Set the substitutionMap to expand variables in the command line.- Parameters:
substitutionMap
- the map
-
toStrings
public java.lang.String[] toStrings()
Returns the command line as an array of strings.- Returns:
- The command line as an string array
-
toString
public java.lang.String toString()
Stringify operator returns the command line as a string. Parameters are correctly quoted when containing a space or left untouched if the are already quoted.- Overrides:
toString
in classjava.lang.Object
- Returns:
- the command line as single string
-
-