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

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 Details

### FILE_UTILS

protected static final FileUtils FILE_UTILS

## Constructor Details

### CommandLauncher

public CommandLauncher()

## Method Details

### 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