Class 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 Detail

      • 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 Detail

      • 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

        public 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​(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

        public Map<String,​?> 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