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 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 final FileUtils`
`FILE_UTILS`

## Constructor Summary

Constructors
Constructor
Description
`CommandLauncher()`

## Method Summary

Modifier and Type
Method
Description
`Process`
`exec(Project project, String[] cmd, String[] env)`
Launches the given command in a new process.
`Process`
`exec(Project project, String[] cmd, String[] env, 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 Process exec(Project project, String[] cmd, String[] env) throws 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:
  `IOException` - if attempting to run a command in a specific directory.

### exec

public Process exec(Project project, String[] cmd, String[] env, File workingDir) throws 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:
  `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