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.
Version:
$Id: CommandLine.java 1613094 2014-07-24 12:20:14Z ggregory $
  • Constructor Details

    • CommandLine

      public CommandLine(String executable)
      Create a command line without any arguments.
      Parameters:
      executable - the executable
    • CommandLine

      public CommandLine(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 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
    • 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(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
    • 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
    • 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
    • getArguments

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

      Returns:
      the substitution map
    • setSubstitutionMap

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

      public String[] toStrings()
      Returns the command line as an array of strings.
      Returns:
      The command line as an string array
    • 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