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
`protected static FileUtils` `FILE_UTILS`

### Constructor Summary

Constructors
Constructor and Description
`CommandLauncher()`

### Method Summary

Methods
`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.

#### getVMLauncher

    public static CommandLauncher getVMLauncher(Project project)

Obtains the VM launcher configured for the given project or the default VM launcher.

#### setVMLauncher

    public static void setVMLauncher(Project project,
                     CommandLauncher launcher)

Sets the VM launcher to use for the given project.

#### setShellLauncher

    public static void setShellLauncher(Project project,
                        CommandLauncher launcher)

Sets the shell launcher to use for the given project.