Package org.apache.tools.ant.taskdefs.launcher

## Class CommandLauncher

- java.lang.Object
- - org.apache.tools.ant.taskdefs.launcher.CommandLauncher

- Direct Known Subclasses:
    `CommandLauncherProxy`, `Java13CommandLauncher`

      public class CommandLauncher
      extends java.lang.Object

  A command launcher for a particular JVM/OS platform. This class is a general purpose command launcher which can only launch commands in the current working directory.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected static FileUtils` | `FILE_UTILS` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CommandLauncher()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.Process` | `exec​(Project project, java.lang.String[] cmd, java.lang.String[] env)` | Launches the given command in a new process.
    `java.lang.Process` | `exec​(Project project, java.lang.String[] cmd, java.lang.String[] env, java.io.File workingDir)` | Launches the given command in a new process, in the given working directory.
    `static CommandLauncher` | `getShellLauncher​(Project project)` | Obtains the shell launcher configured for the given project or the default shell launcher.
    `static CommandLauncher` | `getVMLauncher​(Project project)` | Obtains the VM launcher configured for the given project or the default VM launcher.
    `static void` | `setShellLauncher​(Project project, CommandLauncher launcher)` | Sets the shell launcher to use for the given project.
    `static void` | `setVMLauncher​(Project project, CommandLauncher launcher)` | Sets the VM launcher to use for the given project.

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

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

- - ### Field Detail

    - #### FILE_UTILS

          protected static final FileUtils FILE_UTILS

  - ### Constructor Detail

    - #### CommandLauncher

          public CommandLauncher()

  - ### Method Detail

    - #### exec

          public java.lang.Process exec​(Project project,
                                        java.lang.String[] cmd,
                                        java.lang.String[] env)
                                 throws java.io.IOException

      Launches the given command in a new process.
      Parameters:
        `project` - The project that the command is part of.
        `cmd` - The command to execute.
        `env` - The environment for the new process. If null, the environment of the current process is used.
      Returns:
        the created Process.
      Throws:
        `java.io.IOException` - if attempting to run a command in a specific directory.

    - #### exec

          public java.lang.Process exec​(Project project,
                                        java.lang.String[] cmd,
                                        java.lang.String[] env,
                                        java.io.File workingDir)
                                 throws java.io.IOException

      Launches the given command in a new process, in the given working directory.
      Parameters:
        `project` - The project that the command is part of.
        `cmd` - The command to execute.
        `env` - The environment for the new process. If null, the environment of the current process is used.
        `workingDir` - The directory to start the command in. If null, the current directory is used.
      Returns:
        the created Process.
      Throws:
        `java.io.IOException` - if trying to change directory.

    - #### getShellLauncher

          public static CommandLauncher getShellLauncher​(Project project)

      Obtains the shell launcher configured for the given project or the default shell launcher.
      Parameters:
        `project` - Project
      Returns:
        CommandLauncher

    - #### getVMLauncher

          public static CommandLauncher getVMLauncher​(Project project)

      Obtains the VM launcher configured for the given project or the default VM launcher.
      Parameters:
        `project` - Project
      Returns:
        CommandLauncher

    - #### setVMLauncher

          public static void setVMLauncher​(Project project,
                                           CommandLauncher launcher)

      Sets the VM launcher to use for the given project.
      Parameters:
        `project` - Project
        `launcher` - CommandLauncher

    - #### setShellLauncher

          public static void setShellLauncher​(Project project,
                                              CommandLauncher launcher)

      Sets the shell launcher to use for the given project.
      Parameters:
        `project` - Project
        `launcher` - CommandLauncher