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.
  • Field Details

    • arguments

      private final Vector<CommandLine.Argument> arguments
      The arguments of the command.
    • executable

      private final String executable
      The program to execute.
    • substitutionMap

      private Map<String,?> substitutionMap
      A map of name value pairs used to expand command line arguments.
    • isFile

      private final boolean isFile
      Tests whether a file was used to set the executable.
  • Constructor Details

    • CommandLine

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

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

      public CommandLine(Path executable)
      Constructs a command line without any arguments.
      Parameters:
      executable - the executable file.
      Since:
      1.5.0
    • CommandLine

      public CommandLine(String executable)
      Constructs 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.
    • translateCommandline

      private static String[] translateCommandline(String toProcess)
      Crack a command line.
      Parameters:
      toProcess - the command line to process.
      Returns:
      the command line broken into strings. An empty or null toProcess parameter results in a zero sized array.
    • 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.
    • expandArgument

      private String expandArgument(String argument)
      Expand variables in a command line argument.
      Parameters:
      argument - the argument.
      Returns:
      the expanded string.
    • 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
    • toCleanExecutable

      private String toCleanExecutable(String dirtyExecutable)
      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

      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.