Class CommandLine
java.lang.Object
org.apache.commons.exec.CommandLine
CommandLine objects help handling command lines specifying processes to execute. The class can be used to a command line by an application.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final classEncapsulates a command line argument. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final List<CommandLine.Argument> The arguments of the command.private final StringThe program to execute.private final booleanTests whether a file was used to set the executable.A map of name value pairs used to expand command line arguments. -
Constructor Summary
ConstructorsConstructorDescriptionCommandLine(File executable) Constructs a command line without any arguments.CommandLine(String executable) Constructs a command line without any arguments.CommandLine(Path executable) Constructs a command line without any arguments.CommandLine(CommandLine other) Copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionaddArgument(String argument) Add a single argument.addArgument(String argument, boolean handleQuoting) Add a single argument.addArguments(String addArguments) Add multiple arguments.addArguments(String[] addArguments) Add multiple arguments.addArguments(String[] addArguments, boolean handleQuoting) Add multiple arguments.addArguments(String addArguments, boolean handleQuoting) Add multiple arguments.private StringexpandArgument(String argument) Expand variables in a command line argument.String[]Gets the expanded and quoted command line arguments.Gets the executable.Gets the substitution map.booleanisFile()Tests whether a file was used to set the executable.static CommandLineCreate a command line from a string.static CommandLineCreate a command line from a string.voidsetSubstitutionMap(Map<String, ?> substitutionMap) Sets the substitutionMap to expand variables in the command line.private StringtoCleanExecutable(String dirtyExecutable) Cleans the executable string.toString()Stringify operator returns the command line as a string.String[]Converts the command line as an array of strings.private static String[]translateCommandline(String toProcess) Crack a command line.
-
Field Details
-
arguments
The arguments of the command. -
executable
The program to execute. -
substitutionMap
-
isFile
private final boolean isFileTests whether a file was used to set the executable.
-
-
Constructor Details
-
CommandLine
-
CommandLine
Constructs a command line without any arguments.- Parameters:
executable- the executable file.
-
CommandLine
Constructs a command line without any arguments.- Parameters:
executable- the executable file.- Since:
- 1.5.0
-
CommandLine
Constructs a command line without any arguments.- Parameters:
executable- the executable.- Throws:
NullPointerException- on null input.IllegalArgumentException- on empty input.
-
-
Method Details
-
parse
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:
IllegalArgumentException- If line is null or all whitespace.
-
parse
Create a command line from a string.- Parameters:
line- the first element becomes the executable, the rest the arguments.substitutionMap- the name/value pairs used for substitution.- Returns:
- the parsed command line.
- Throws:
IllegalArgumentException- If line is null or all whitespace.
-
translateCommandline
-
addArgument
Add a single argument. Handles quoting.- Parameters:
argument- The argument to add.- Returns:
- The command line itself.
- Throws:
IllegalArgumentException- If argument contains both single and double quotes.
-
addArgument
Add a single argument.- Parameters:
argument- The argument to add.handleQuoting- Add the argument with/without handling quoting.- Returns:
- The command line itself.
-
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- A string containing multiple arguments.- Returns:
- The command line itself.
-
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- A string containing multiple arguments.handleQuoting- Add the argument with/without handling quoting.- Returns:
- The command line itself.
-
addArguments
Add multiple arguments. Handles parsing of quotes and whitespace.- Parameters:
addArguments- An array of arguments.- Returns:
- The command line itself.
-
addArguments
Add multiple arguments.- Parameters:
addArguments- An array of arguments.handleQuoting- Add the argument with/without handling quoting.- Returns:
- The command line itself.
-
expandArgument
-
getArguments
Gets the expanded and quoted command line arguments.- Returns:
- The quoted arguments.
-
getExecutable
-
getSubstitutionMap
-
isFile
public boolean isFile()Tests whether a file was used to set the executable.- Returns:
- true whether a file was used for setting the executable.
-
setSubstitutionMap
-
toCleanExecutable
Cleans the executable string. The argument is trimmed and '/' and '\\' are replaced with the platform specific file separator char- Parameters:
dirtyExecutable- the executable.- Returns:
- the platform-specific executable string.
- Throws:
NullPointerException- on null input.IllegalArgumentException- on empty input.
-
toString
-
toStrings
Converts the command line as an array of strings.- Returns:
- The command line as a string array.
-