Package org.apache.commons.exec

# Class CommandLine

java.lang.Object
org.apache.commons.exec.CommandLine

public class CommandLine extends 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(File executable)`
  Create a command line without any arguments.
  `CommandLine(String executable)`
  Create a command line without any arguments.
  `CommandLine(CommandLine other)`
  Copy constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CommandLine`
  `addArgument(String argument)`
  Add a single argument.
  `CommandLine`
  `addArgument(String argument, boolean handleQuoting)`
  Add a single argument.
  `CommandLine`
  `addArguments(String addArguments)`
  Add multiple arguments.
  `CommandLine`
  `addArguments(String[] addArguments)`
  Add multiple arguments.
  `CommandLine`
  `addArguments(String[] addArguments, boolean handleQuoting)`
  Add multiple arguments.
  `CommandLine`
  `addArguments(String addArguments, boolean handleQuoting)`
  Add multiple arguments.
  `String[]`
  `getArguments()`
  Gets the expanded and quoted command line arguments.
  `String`
  `getExecutable()`
  Gets the executable.
  `Map<String,?>`
  `getSubstitutionMap()`
  Gets the substitution map.
  `boolean`
  `isFile()`
  Tests whether a file was used to set the executable.
  `static CommandLine`
  `parse(String line)`
  Create a command line from a string.
  `static CommandLine`
  `parse(String line, Map<String,?> substitutionMap)`
  Create a command line from a string.
  `void`
  `setSubstitutionMap(Map<String,?> substitutionMap)`
  Sets the substitutionMap to expand variables in the command line.
  `String`
  `toString()`
  Stringify operator returns the command line as a string.
  `String[]`
  `toStrings()`
  Converts the command line as an array of strings.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### CommandLine

    public CommandLine(CommandLine other)
    Copy constructor.
    Parameters:
      `other` - the instance to copy.

  - ### CommandLine

    public CommandLine(File executable)
    Create a command line without any arguments.
    Parameters:
      `executable` - the executable file.

  - ### CommandLine

    public CommandLine(String executable)
    Create a command line without any arguments.
    Parameters:
      `executable` - the executable.
    Throws:
      `NullPointerException` - on null input.
      `IllegalArgumentException` - on empty input.

- ## Method Details

  - ### parse

    public static CommandLine parse(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:
      `IllegalArgumentException` - If line is null or all whitespace.

  - ### parse

    public static CommandLine parse(String line, Map<String,?> substitutionMap)
    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.

  - ### addArgument

    public CommandLine addArgument(String argument)
    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

    public CommandLine addArgument(String argument, boolean handleQuoting)
    Add a single argument.
    Parameters:
      `argument` - The argument to add.
      `handleQuoting` - Add the argument with/without handling quoting.
    Returns:
      The command line itself.

  - ### addArguments

    public CommandLine addArguments(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(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.

  - ### addArguments

    public CommandLine addArguments(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(String[] addArguments, boolean handleQuoting)
    Add multiple arguments.
    Parameters:
      `addArguments` - An array of arguments.
      `handleQuoting` - Add the argument with/without handling quoting.
    Returns:
      The command line itself.

  - ### getArguments

    public String[] getArguments()
    Gets the expanded and quoted command line arguments.
    Returns:
      The quoted arguments.

  - ### getExecutable

    public String getExecutable()
    Gets the executable.
    Returns:
      The executable.

  - ### getSubstitutionMap

    public Map<String,?> getSubstitutionMap()
    Gets the substitution map.
    Returns:
      the substitution map.

  - ### 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

    public void setSubstitutionMap(Map<String,?> substitutionMap)
    Sets the substitutionMap to expand variables in the command line.
    Parameters:
      `substitutionMap` - the map

  - ### toString

    public 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 class `Object`
    Returns:
      the command line as single string.

  - ### toStrings

    public String[] toStrings()
    Converts the command line as an array of strings.
    Returns:
      The command line as an string array.