Class Commandline

java.lang.Object
org.apache.maven.shared.utils.cli.Commandline
All Implemented Interfaces:
Cloneable

public class Commandline extends Object implements Cloneable

Commandline objects help handling command lines specifying processes to execute.

The class can be used to define a command line as nested elements or as a helper to define a command line by an application.

<someelement>
  <acommandline executable="/executable/to/run">
    <argument value="argument 1" />
    <argument line="argument_1 argument_2 argument_3" />
    <argument value="argument 4" />
  </acommandline>
</someelement>

The element someelement must provide a method createAcommandline which returns an instance of this class.

Author:
thomas.haas@softwired-inc.com, Stefan Bodewig
  • Constructor Details

    • Commandline

      public Commandline(Shell shell)
      Create a new command line object. Shell is autodetected from operating system.
      Parameters:
      shell - the shell instance
    • Commandline

      public Commandline(String toProcess) throws CommandLineException
      Create a new command line object. Shell is autodetected from operating system.
      Parameters:
      toProcess - the command to process
      Throws:
      CommandLineException - in case of unbalanced quotes.
    • Commandline

      public Commandline()
      Create a new command line object. Shell is autodetected from operating system.
  • Method Details

    • createArg

      public Arg createArg()
      Creates an empty argument object and inserts it at the end of the argument list.
      Returns:
      the argument object
    • createArg

      public Arg createArg(boolean insertAtStart)
      Creates an argument object and adds it to the list of args.
      Parameters:
      insertAtStart - if true, the argument is inserted at the beginning of the list of args. Otherwise it is appended.
      Returns:
      the argument
    • setExecutable

      public void setExecutable(String executable)
      Sets the executable to run.
      Parameters:
      executable - the executable
    • getExecutable

      public String getExecutable()
      Returns:
      the executable
    • addArguments

      public void addArguments(String... line)
      Parameters:
      line - the arguments
    • addEnvironment

      public void addEnvironment(String name, String value)
      Add an environment variable.
      Parameters:
      name - the name of the environment variable
      value - the appropriate value
    • addSystemEnvironment

      @Deprecated public void addSystemEnvironment()
      Add system environment variables.
    • getEnvironmentVariables

      public String[] getEnvironmentVariables()
      Return the list of environment variables.
      Returns:
      an array of all environment variables
    • getCommandline

      public String[] getCommandline()
      Returns the executable and all defined arguments.
      Returns:
      an array of all arguments including the executable
    • getArguments

      public String[] getArguments()
      Returns all arguments defined by addLine, addValue or the argument object.
      Returns:
      an array of arguments.
    • getArguments

      public String[] getArguments(boolean mask)
      Returns all arguments defined by addLine, addValue, or the argument object.
      Parameters:
      mask - flag to mask any arguments (having his mask field to true)
      Returns:
      an array of arguments
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • clone

      public Object clone()
      Overrides:
      clone in class Object
    • setWorkingDirectory

      public void setWorkingDirectory(String path)
      Sets working directory.
      Parameters:
      path - the working directory
    • setWorkingDirectory

      public void setWorkingDirectory(File workingDirectory)
      Sets working directory.
      Parameters:
      workingDirectory - the working directory
    • getWorkingDirectory

      public File getWorkingDirectory()
      Returns:
      the working directory
    • clearArgs

      public void clearArgs()
      Clear out the arguments but leave the executable in place for another operation.
    • isShellEnvironmentInherited

      public boolean isShellEnvironmentInherited()
      Indicates whether the environment variables of the current process should are propagated to the executing Command. By default, the current environment variables are inherited by the new Command line execution.
      Returns:
      true if the environment variables should be propagated, false otherwise.
    • setShellEnvironmentInherited

      public void setShellEnvironmentInherited(boolean shellEnvironmentInherited)
      Specifies whether the environment variables of the current process should be propagated to the executing Command.
      Parameters:
      shellEnvironmentInherited - true if the environment variables should be propagated, false otherwise.
    • execute

      public Process execute() throws CommandLineException
      Execute the command.
      Returns:
      the process
      Throws:
      CommandLineException - in case of errors
    • getShell

      public Shell getShell()
      Get the shell to be used in this command line.
      Returns:
      the shell