# Class Exec

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
org.gradle.api.internal.ConventionTask
org.gradle.api.tasks.AbstractExecTask<Exec>
org.gradle.api.tasks.Exec

All Implemented Interfaces:
  `Comparable<Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.IConventionAware, org.gradle.api.internal.TaskInternal, Named, ExtensionAware, Task, BaseExecSpec, ExecSpec, ProcessForkOptions, Configurable<Task>`

@DisableCachingByDefault(because="Gradle would require more information to cache this task") public abstract class Exec extends AbstractExecTask<Exec>
Executes a command line process. Example:

    task stopTomcat(type:Exec) {
      workingDir '../tomcat/bin'

      //on windows:
      commandLine 'cmd.exe', '/d', '/c', 'stop.bat'

      //on linux
      commandLine './stop.sh'

      //store the output instead of printing to the console:
      standardOutput = new ByteArrayOutputStream()

      //extension method stopTomcat.output() can be used to obtain the output:
      ext.output = {
        return standardOutput.toString()
      }
    }

Since:
  0.9

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Field Summary

  ### Fields inherited from interface Task

  `TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Exec()`
  Creates a new `Exec`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<String>`
  `getArgs()`
  Returns the arguments for the command to be executed.
  `OutputStream`
  `getErrorOutput()`
  Returns the output stream to consume standard error from the process executing the command.
  `InputStream`
  `getStandardInput()`
  Returns the standard input stream for the process executing the command.
  `OutputStream`
  `getStandardOutput()`
  Returns the output stream to consume standard output from the process executing the command.
  `boolean`
  `isIgnoreExitValue()`
  Tells whether a non-zero exit value is ignored, or an exception thrown.
  `Exec`
  `setArgs(Iterable<?> arguments)`
  Sets the arguments for the command to be executed.
  `Exec`
  `setArgs(List<String> arguments)`
  Sets the arguments for the command to be executed.
  `Exec`
  `setErrorOutput(OutputStream outputStream)`
  Sets the output stream to consume standard error from the process executing the command.
  `Exec`
  `setIgnoreExitValue(boolean ignoreExitValue)`
  Sets whether a non-zero exit value is ignored, or an exception thrown.
  `Exec`
  `setStandardInput(InputStream inputStream)`
  Sets the standard input stream for the process executing the command.
  `Exec`
  `setStandardOutput(OutputStream outputStream)`
  Sets the output stream to consume standard output from the process executing the command.

  ### Methods inherited from class AbstractExecTask

  `args, args, commandLine, commandLine, copyTo, environment, environment, exec, executable, getArgumentProviders, getCommandLine, getEnvironment, getExecActionFactory, getExecutable, getExecutionResult, getObjectFactory, getWorkingDir, getWorkingDirectory, setCommandLine, setCommandLine, setCommandLine, setEnvironment, setExecutable, setExecutable, setWorkingDir, setWorkingDir, workingDir`

  ### Methods inherited from class org.gradle.api.internal.ConventionTask

  `conventionMapping, conventionMapping, getConventionMapping`

  ### Methods inherited from class DefaultTask

  `compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

  ### Methods inherited from class org.gradle.api.internal.AbstractTask

  `acceptServiceReferences, appendParallelSafeAction, doNotTrackState, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getLoggingManager, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, service, setImpliesSubProjects`

  ### Methods inherited from class Object

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

  ### Methods inherited from interface Task

  `doNotTrackState, notCompatibleWithConfigurationCache, service`

- ## Constructor Details

  - ### Exec

    public Exec()
    Creates a new `Exec`.
    Since:
      0.9

- ## Method Details

  - ### getArgs

    public List<String> getArgs()
    Returns the arguments for the command to be executed. Defaults to an empty list.
    Specified by:
      `getArgs` in interface `ExecSpec`
    Overrides:
      `getArgs` in class `AbstractExecTask<Exec>`

  - ### setArgs

    public Exec setArgs(List<String> arguments)
    Sets the arguments for the command to be executed.
    Specified by:
      `setArgs` in interface `ExecSpec`
    Overrides:
      `setArgs` in class `AbstractExecTask<Exec>`
    Parameters:
      `arguments` - args for the command
    Returns:
      this

  - ### setArgs

    public Exec setArgs(Iterable<?> arguments)
    Sets the arguments for the command to be executed.
    Specified by:
      `setArgs` in interface `ExecSpec`
    Overrides:
      `setArgs` in class `AbstractExecTask<Exec>`
    Parameters:
      `arguments` - args for the command
    Returns:
      this

  - ### isIgnoreExitValue

    public boolean isIgnoreExitValue()
    Tells whether a non-zero exit value is ignored, or an exception thrown. Defaults to `false`.
    Specified by:
      `isIgnoreExitValue` in interface `BaseExecSpec`
    Overrides:
      `isIgnoreExitValue` in class `AbstractExecTask<Exec>`
    Returns:
      whether a non-zero exit value is ignored, or an exception thrown

  - ### setIgnoreExitValue

    public Exec setIgnoreExitValue(boolean ignoreExitValue)
    Sets whether a non-zero exit value is ignored, or an exception thrown.
    Specified by:
      `setIgnoreExitValue` in interface `BaseExecSpec`
    Overrides:
      `setIgnoreExitValue` in class `AbstractExecTask<Exec>`
    Parameters:
      `ignoreExitValue` - whether a non-zero exit value is ignored, or an exception thrown
    Returns:
      this

  - ### getStandardInput

    public InputStream getStandardInput()
    Returns the standard input stream for the process executing the command. The stream is closed after the process completes. Defaults to an empty stream.
    Specified by:
      `getStandardInput` in interface `BaseExecSpec`
    Overrides:
      `getStandardInput` in class `AbstractExecTask<Exec>`
    Returns:
      The standard input stream.

  - ### setStandardInput

    public Exec setStandardInput(InputStream inputStream)
    Sets the standard input stream for the process executing the command. The stream is closed after the process completes.
    Specified by:
      `setStandardInput` in interface `BaseExecSpec`
    Overrides:
      `setStandardInput` in class `AbstractExecTask<Exec>`
    Parameters:
      `inputStream` - The standard input stream for the process. Must not be null.
    Returns:
      this

  - ### getStandardOutput

    @Internal public OutputStream getStandardOutput()
    Returns the output stream to consume standard output from the process executing the command. Defaults to `System.out`.
    Specified by:
      `getStandardOutput` in interface `BaseExecSpec`
    Overrides:
      `getStandardOutput` in class `AbstractExecTask<Exec>`
    Returns:
      The output stream

  - ### setStandardOutput

    public Exec setStandardOutput(OutputStream outputStream)
    Sets the output stream to consume standard output from the process executing the command. The stream is closed after the process completes.
    Specified by:
      `setStandardOutput` in interface `BaseExecSpec`
    Overrides:
      `setStandardOutput` in class `AbstractExecTask<Exec>`
    Parameters:
      `outputStream` - The standard output stream for the process. Must not be null.
    Returns:
      this

  - ### getErrorOutput

    public OutputStream getErrorOutput()
    Returns the output stream to consume standard error from the process executing the command. Default to `System.err`.
    Specified by:
      `getErrorOutput` in interface `BaseExecSpec`
    Overrides:
      `getErrorOutput` in class `AbstractExecTask<Exec>`
    Returns:
      The error output stream.

  - ### setErrorOutput

    public Exec setErrorOutput(OutputStream outputStream)
    Sets the output stream to consume standard error from the process executing the command. The stream is closed after the process completes.
    Specified by:
      `setErrorOutput` in interface `BaseExecSpec`
    Overrides:
      `setErrorOutput` in class `AbstractExecTask<Exec>`
    Parameters:
      `outputStream` - The standard output error stream for the process. Must not be null.
    Returns:
      this