Package org.gradle.api.tasks

## Class JavaExec

- java.lang.Object
- - org.gradle.api.internal.AbstractTask
  - - org.gradle.api.DefaultTask
    - - org.gradle.api.internal.ConventionTask
      - - org.gradle.api.tasks.JavaExec

- All Implemented Interfaces:
    `Comparable<Task>`, `org.gradle.api.internal.DynamicObjectAware`, `org.gradle.api.internal.IConventionAware`, `org.gradle.api.internal.TaskInternal`, `ExtensionAware`, `Task`, `BaseExecSpec`, `JavaExecSpec`, `JavaForkOptions`, `ProcessForkOptions`, `org.gradle.util.Configurable<Task>`
  Direct Known Subclasses:
    `RhinoShellExec`

      public class JavaExec
      extends org.gradle.api.internal.ConventionTask
      implements JavaExecSpec

  Executes a Java application in a child process.

  Similar to `Exec`, but starts a JVM with the given classpath and application class.

       apply plugin: 'java'

       task runApp(type: JavaExec) {
         classpath = sourceSets.main.runtimeClasspath

         main = 'package.Main'

         // arguments to pass to the application
         args 'appArg1'
       }

  The process can be started in debug mode (see `getDebug()`) in an ad-hoc manner by supplying the `--debug-jvm` switch when invoking the build.

       gradle someJavaExecTask --debug-jvm

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.gradle.api.Task

      `Task.Namer`

  - ### Field Summary

    - ### Fields inherited from interface org.gradle.api.Task

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

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `JavaExecSpec` | `args​(Iterable<?> args)` | Adds args for the main class to be executed.
    `JavaExec` | `args​(Object... args)` | Adds args for the main class to be executed.
    `JavaExec` | `bootstrapClasspath​(Object... classpath)` | Adds the given values to the end of the bootstrap classpath for the process.
    `JavaExec` | `classpath​(Object... paths)` | Adds elements to the classpath for executing the main class.
    `JavaExec` | `copyTo​(JavaForkOptions options)` | Copies these options to the given options.
    `JavaExec` | `copyTo​(ProcessForkOptions target)` | Copies these options to the given target options.
    `JavaExec` | `environment​(String name, Object value)` | Adds an environment variable to the environment for this process.
    `JavaExec` | `environment​(Map<String,​?> environmentVariables)` | Adds some environment variables to the environment for this process.
    `void` | `exec()` |
    `JavaExec` | `executable​(Object executable)` | Sets the name of the executable to use.
    `List<String>` | `getAllJvmArgs()` | Returns the full set of arguments to use to launch the JVM for the process.
    `List<String>` | `getArgs()` | Returns the arguments passed to the main class to be executed.
    `List<CommandLineArgumentProvider>` | `getArgumentProviders()` | Argument providers for the application.
    `FileCollection` | `getBootstrapClasspath()` | Returns the bootstrap classpath to use for the process.
    `FileCollection` | `getClasspath()` | Returns the classpath for executing the main class.
    `List<String>` | `getCommandLine()` | Returns the full command line, including the executable plus its arguments.
    `boolean` | `getDebug()` | Determines whether debugging is enabled for the test process.
    `String` | `getDefaultCharacterEncoding()` | Returns the default character encoding to use.
    `boolean` | `getEnableAssertions()` | Returns true if assertions are enabled for the process.
    `Map<String,​Object>` | `getEnvironment()` | The environment variables to use for the process.
    `OutputStream` | `getErrorOutput()` | Returns the output stream to consume standard error from the process executing the command.
    `protected org.gradle.process.internal.ExecActionFactory` | `getExecActionFactory()` |
    `String` | `getExecutable()` | Returns the name of the executable to use.
    `JavaVersion` | `getJavaVersion()` | Returns the version of the Java executable specified by `getExecutable()`.
    `List<String>` | `getJvmArgs()` | Returns the extra arguments to use to launch the JVM for the process.
    `List<CommandLineArgumentProvider>` | `getJvmArgumentProviders()` | Command line argument providers for the java process to fork.
    `String` | `getMain()` | Returns the fully qualified name of the Main class to be executed.
    `String` | `getMaxHeapSize()` | Returns the maximum heap size for the process, if any.
    `String` | `getMinHeapSize()` | Returns the minimum heap size for the process, if any.
    `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.
    `Map<String,​Object>` | `getSystemProperties()` | Returns the system properties which will be used for the process.
    `File` | `getWorkingDir()` | Returns the working directory for the process.
    `boolean` | `isIgnoreExitValue()` | Tells whether a non-zero exit value is ignored, or an exception thrown.
    `JavaExec` | `jvmArgs​(Iterable<?> arguments)` | Adds some arguments to use to launch the JVM for the process.
    `JavaExec` | `jvmArgs​(Object... arguments)` | Adds some arguments to use to launch the JVM for the process.
    `void` | `setAllJvmArgs​(Iterable<?> arguments)` | Sets the full set of arguments to use to launch the JVM for the process.
    `void` | `setAllJvmArgs​(List<String> arguments)` | Sets the full set of arguments to use to launch the JVM for the process.
    `JavaExec` | `setArgs​(Iterable<?> applicationArgs)` | Sets the args for the main class to be executed.
    `JavaExec` | `setArgs​(List<String> applicationArgs)` | Sets the args for the main class to be executed.
    `JavaExec` | `setArgsString​(String args)` | Parses an argument list from `args` and passes it to `setArgs(List)`.
    `void` | `setBootstrapClasspath​(FileCollection classpath)` | Sets the bootstrap classpath to use for the process.
    `JavaExec` | `setClasspath​(FileCollection classpath)` | Sets the classpath for executing the main class.
    `void` | `setDebug​(boolean enabled)` | Enable or disable debugging for the process.
    `void` | `setDefaultCharacterEncoding​(String defaultCharacterEncoding)` | Sets the default character encoding to use.
    `void` | `setEnableAssertions​(boolean enabled)` | Enable or disable assertions for the process.
    `void` | `setEnvironment​(Map<String,​?> environmentVariables)` | Sets the environment variable to use for the process.
    `JavaExec` | `setErrorOutput​(OutputStream outputStream)` | Sets the output stream to consume standard error from the process executing the command.
    `void` | `setExecutable​(Object executable)` | Sets the name of the executable to use.
    `void` | `setExecutable​(String executable)` | Sets the name of the executable to use.
    `JavaExecSpec` | `setIgnoreExitValue​(boolean ignoreExitValue)` | Sets whether a non-zero exit value is ignored, or an exception thrown.
    `void` | `setJvmArgs​(Iterable<?> arguments)` | Sets the extra arguments to use to launch the JVM for the process.
    `void` | `setJvmArgs​(List<String> arguments)` | Sets the extra arguments to use to launch the JVM for the process.
    `JavaExec` | `setMain​(String mainClassName)` | Sets the fully qualified name of the main class to be executed.
    `void` | `setMaxHeapSize​(String heapSize)` | Sets the maximum heap size for the process.
    `void` | `setMinHeapSize​(String heapSize)` | Sets the minimum heap size for the process.
    `JavaExec` | `setStandardInput​(InputStream inputStream)` | Sets the standard input stream for the process executing the command.
    `JavaExec` | `setStandardOutput​(OutputStream outputStream)` | Sets the output stream to consume standard output from the process executing the command.
    `void` | `setSystemProperties​(Map<String,​?> properties)` | Sets the system properties to use for the process.
    `void` | `setWorkingDir​(File dir)` | Sets the working directory for the process.
    `void` | `setWorkingDir​(Object dir)` | Sets the working directory for the process.
    `JavaExec` | `systemProperties​(Map<String,​?> properties)` | Adds some system properties to use for the process.
    `JavaExec` | `systemProperty​(String name, Object value)` | Adds a system property to use for the process.
    `JavaExec` | `workingDir​(Object dir)` | Sets the working directory for the process.

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

      `conventionMapping, conventionMapping, getConventionMapping`

    - ### Methods inherited from class org.gradle.api.DefaultTask

      `newInputDirectory, newInputFile, newOutputDirectory, newOutputFile`

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

      `appendParallelSafeAction, compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getAsDynamicObject, getConvention, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getIdentityPath, getImpliesSubProjects, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOnlyIf, getOutputs, getPath, getProject, getServices, getShouldRunAfter, getStandardOutputCapture, getState, getTaskActions, getTaskDependencies, getTaskIdentity, getTemporaryDir, getTemporaryDirFactory, getTimeout, hasProperty, hasTaskActions, injectIntoNewInstance, isEnabled, isHasCustomActions, mustRunAfter, onlyIf, onlyIf, prependParallelSafeAction, property, replaceLogger, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setImpliesSubProjects, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, toString`

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

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

- - ### Constructor Detail

    - #### JavaExec

          public JavaExec()

  - ### Method Detail

    - #### getExecActionFactory

          @Inject
          protected org.gradle.process.internal.ExecActionFactory getExecActionFactory()

    - #### exec

          public void exec()

    - #### getAllJvmArgs

          public List<String> getAllJvmArgs()

      Returns the full set of arguments to use to launch the JVM for the process. This includes arguments to define system properties, the minimum/maximum heap size, and the bootstrap classpath.
      Specified by:
        `getAllJvmArgs` in interface `JavaForkOptions`
      Returns:
        The arguments. Returns an empty list if there are no arguments.

    - #### setAllJvmArgs

          public void setAllJvmArgs​(List<String> arguments)

      Sets the full set of arguments to use to launch the JVM for the process. Overwrites any previously set system properties, minimum/maximum heap size, assertions, and bootstrap classpath.
      Specified by:
        `setAllJvmArgs` in interface `JavaForkOptions`
      Parameters:
        `arguments` - The arguments. Must not be null.

    - #### setAllJvmArgs

          public void setAllJvmArgs​(Iterable<?> arguments)

      Sets the full set of arguments to use to launch the JVM for the process. Overwrites any previously set system properties, minimum/maximum heap size, assertions, and bootstrap classpath.
      Specified by:
        `setAllJvmArgs` in interface `JavaForkOptions`
      Parameters:
        `arguments` - The arguments. Must not be null.

    - #### getJvmArgs

          public List<String> getJvmArgs()

      Returns the extra arguments to use to launch the JVM for the process. Does not include system properties and the minimum/maximum heap size.
      Specified by:
        `getJvmArgs` in interface `JavaForkOptions`
      Returns:
        The arguments. Returns an empty list if there are no arguments.

    - #### setJvmArgs

          public void setJvmArgs​(List<String> arguments)

      Sets the extra arguments to use to launch the JVM for the process. System properties and minimum/maximum heap size are updated.
      Specified by:
        `setJvmArgs` in interface `JavaForkOptions`
      Parameters:
        `arguments` - The arguments. Must not be null.

    - #### setJvmArgs

          public void setJvmArgs​(Iterable<?> arguments)

      Sets the extra arguments to use to launch the JVM for the process. System properties and minimum/maximum heap size are updated.
      Specified by:
        `setJvmArgs` in interface `JavaForkOptions`
      Parameters:
        `arguments` - The arguments. Must not be null.

    - #### jvmArgs

          public JavaExec jvmArgs​(Iterable<?> arguments)

      Adds some arguments to use to launch the JVM for the process.
      Specified by:
        `jvmArgs` in interface `JavaForkOptions`
      Parameters:
        `arguments` - The arguments. Must not be null.
      Returns:
        this

    - #### jvmArgs

          public JavaExec jvmArgs​(Object... arguments)

      Adds some arguments to use to launch the JVM for the process.
      Specified by:
        `jvmArgs` in interface `JavaForkOptions`
      Parameters:
        `arguments` - The arguments.
      Returns:
        this

    - #### getSystemProperties

          public Map<String,​Object> getSystemProperties()

      Returns the system properties which will be used for the process.
      Specified by:
        `getSystemProperties` in interface `JavaForkOptions`
      Returns:
        The system properties. Returns an empty map when there are no system properties.

    - #### setSystemProperties

          public void setSystemProperties​(Map<String,​?> properties)

      Sets the system properties to use for the process.
      Specified by:
        `setSystemProperties` in interface `JavaForkOptions`
      Parameters:
        `properties` - The system properties. Must not be null.

    - #### systemProperties

          public JavaExec systemProperties​(Map<String,​?> properties)

      Adds some system properties to use for the process.
      Specified by:
        `systemProperties` in interface `JavaForkOptions`
      Parameters:
        `properties` - The system properties. Must not be null.
      Returns:
        this

    - #### systemProperty

          public JavaExec systemProperty​(String name,
                                         Object value)

      Adds a system property to use for the process.
      Specified by:
        `systemProperty` in interface `JavaForkOptions`
      Parameters:
        `name` - The name of the property
        `value` - The value for the property. May be null.
      Returns:
        this

    - #### getBootstrapClasspath

          public FileCollection getBootstrapClasspath()

      Returns the bootstrap classpath to use for the process. The default bootstrap classpath for the JVM is used when this classpath is empty.
      Specified by:
        `getBootstrapClasspath` in interface `JavaForkOptions`
      Returns:
        The bootstrap classpath. Never returns null.

    - #### setBootstrapClasspath

          public void setBootstrapClasspath​(FileCollection classpath)

      Sets the bootstrap classpath to use for the process. Set to an empty classpath to use the default bootstrap classpath for the specified JVM.
      Specified by:
        `setBootstrapClasspath` in interface `JavaForkOptions`
      Parameters:
        `classpath` - The classpath. Must not be null. Can be empty.

    - #### bootstrapClasspath

          public JavaExec bootstrapClasspath​(Object... classpath)

      Adds the given values to the end of the bootstrap classpath for the process.
      Specified by:
        `bootstrapClasspath` in interface `JavaForkOptions`
      Parameters:
        `classpath` - The classpath.
      Returns:
        this

    - #### getMinHeapSize

          public String getMinHeapSize()

      Returns the minimum heap size for the process, if any.
      Specified by:
        `getMinHeapSize` in interface `JavaForkOptions`
      Returns:
        The minimum heap size. Returns null if the default minimum heap size should be used.

    - #### setMinHeapSize

          public void setMinHeapSize​(String heapSize)

      Sets the minimum heap size for the process.
      Specified by:
        `setMinHeapSize` in interface `JavaForkOptions`
      Parameters:
        `heapSize` - The minimum heap size. Use null for the default minimum heap size.

    - #### getDefaultCharacterEncoding

          public String getDefaultCharacterEncoding()

      Returns the default character encoding to use.
      Specified by:
        `getDefaultCharacterEncoding` in interface `JavaForkOptions`
      Returns:
        The default character encoding. Returns null if the `default character encoding of this JVM` should be used.

    - #### setDefaultCharacterEncoding

          public void setDefaultCharacterEncoding​(String defaultCharacterEncoding)

      Sets the default character encoding to use. Note: Many JVM implementations support the setting of this attribute via system property on startup (namely, the `file.encoding` property). For JVMs where this is the case, setting the `file.encoding` property via `JavaForkOptions.setSystemProperties(java.util.Map)` or similar will have no effect as this value will be overridden by the value specified by `JavaForkOptions.getDefaultCharacterEncoding()`.
      Specified by:
        `setDefaultCharacterEncoding` in interface `JavaForkOptions`
      Parameters:
        `defaultCharacterEncoding` - The default character encoding. Use null to use `this JVM's default charset`

    - #### getMaxHeapSize

          public String getMaxHeapSize()

      Returns the maximum heap size for the process, if any.
      Specified by:
        `getMaxHeapSize` in interface `JavaForkOptions`
      Returns:
        The maximum heap size. Returns null if the default maximum heap size should be used.

    - #### setMaxHeapSize

          public void setMaxHeapSize​(String heapSize)

      Sets the maximum heap size for the process.
      Specified by:
        `setMaxHeapSize` in interface `JavaForkOptions`
      Parameters:
        `heapSize` - The heap size. Use null for the default maximum heap size.

    - #### getEnableAssertions

          public boolean getEnableAssertions()

      Returns true if assertions are enabled for the process.
      Specified by:
        `getEnableAssertions` in interface `JavaForkOptions`
      Returns:
        true if assertions are enabled, false if disabled

    - #### setEnableAssertions

          public void setEnableAssertions​(boolean enabled)

      Enable or disable assertions for the process.
      Specified by:
        `setEnableAssertions` in interface `JavaForkOptions`
      Parameters:
        `enabled` - true to enable assertions, false to disable.

    - #### getDebug

          public boolean getDebug()

      Determines whether debugging is enabled for the test process. When enabled — `debug = true` — the process is started in a suspended state, listening on port 5005. You should disable parallel test execution when debugging and you will need to reattach the debugger occasionally if you use a non-zero value for `Test.getForkEvery()`.
      Specified by:
        `getDebug` in interface `JavaForkOptions`
      Returns:
        true when debugging is enabled, false to disable.

    - #### setDebug

          public void setDebug​(boolean enabled)

      Enable or disable debugging for the process. When enabled, the process is started suspended and listening on port 5005.
      Specified by:
        `setDebug` in interface `JavaForkOptions`
      Parameters:
        `enabled` - true to enable debugging, false to disable.

    - #### getMain

          public String getMain()

      Returns the fully qualified name of the Main class to be executed.
      Specified by:
        `getMain` in interface `JavaExecSpec`

    - #### setMain

          public JavaExec setMain​(String mainClassName)

      Sets the fully qualified name of the main class to be executed.
      Specified by:
        `setMain` in interface `JavaExecSpec`
      Parameters:
        `mainClassName` - the fully qualified name of the main class to be executed.
      Returns:
        this

    - #### getArgs

          public List<String> getArgs()

      Returns the arguments passed to the main class to be executed.
      Specified by:
        `getArgs` in interface `JavaExecSpec`

    - #### setArgsString

          @Incubating
          public JavaExec setArgsString​(String args)

      Parses an argument list from `args` and passes it to `setArgs(List)`.

      The parser supports both single quote (`'`) and double quote (`"`) as quote delimiters. For example, to pass the argument `foo bar`, use `"foo bar"`.

      Note: the parser does not support using backslash to escape quotes. If this is needed, use the other quote delimiter around it. For example, to pass the argument `'singly quoted'`, use `"'singly quoted'"`.

      Parameters:
        `args` - Args for the main class. Will be parsed into an argument list.
      Returns:
        this
      Since:
        4.9

    - #### setArgs

          public JavaExec setArgs​(List<String> applicationArgs)

      Sets the args for the main class to be executed.
      Specified by:
        `setArgs` in interface `JavaExecSpec`
      Parameters:
        `applicationArgs` - Args for the main class.
      Returns:
        this

    - #### setArgs

          public JavaExec setArgs​(Iterable<?> applicationArgs)

      Sets the args for the main class to be executed.
      Specified by:
        `setArgs` in interface `JavaExecSpec`
      Parameters:
        `applicationArgs` - Args for the main class.
      Returns:
        this

    - #### args

          public JavaExec args​(Object... args)

      Adds args for the main class to be executed.
      Specified by:
        `args` in interface `JavaExecSpec`
      Parameters:
        `args` - Args for the main class.
      Returns:
        this

    - #### args

          public JavaExecSpec args​(Iterable<?> args)

      Adds args for the main class to be executed.
      Specified by:
        `args` in interface `JavaExecSpec`
      Parameters:
        `args` - Args for the main class.
      Returns:
        this

    - #### getArgumentProviders

          public List<CommandLineArgumentProvider> getArgumentProviders()

      Argument providers for the application.
      Specified by:
        `getArgumentProviders` in interface `JavaExecSpec`

    - #### setClasspath

          public JavaExec setClasspath​(FileCollection classpath)

      Sets the classpath for executing the main class.
      Specified by:
        `setClasspath` in interface `JavaExecSpec`
      Parameters:
        `classpath` - the classpath
      Returns:
        this

    - #### classpath

          public JavaExec classpath​(Object... paths)

      Adds elements to the classpath for executing the main class.
      Specified by:
        `classpath` in interface `JavaExecSpec`
      Parameters:
        `paths` - classpath elements
      Returns:
        this

    - #### getClasspath

          public FileCollection getClasspath()

      Returns the classpath for executing the main class.
      Specified by:
        `getClasspath` in interface `JavaExecSpec`

    - #### copyTo

          public JavaExec copyTo​(JavaForkOptions options)

      Copies these options to the given options.
      Specified by:
        `copyTo` in interface `JavaForkOptions`
      Parameters:
        `options` - The target options.
      Returns:
        this

    - #### getJavaVersion

          @Input
          @Incubating
          public JavaVersion getJavaVersion()

      Returns the version of the Java executable specified by `getExecutable()`.
      Since:
        5.2

    - #### getExecutable

          @Internal("covered by getJavaVersion")
          @Nullable
          public String getExecutable()

      Returns the name of the executable to use.
      Specified by:
        `getExecutable` in interface `ProcessForkOptions`
      Returns:
        The executable.

    - #### setExecutable

          public void setExecutable​(String executable)

      Sets the name of the executable to use.
      Specified by:
        `setExecutable` in interface `ProcessForkOptions`
      Parameters:
        `executable` - The executable. Must not be null.

    - #### setExecutable

          public void setExecutable​(Object executable)

      Sets the name of the executable to use.
      Specified by:
        `setExecutable` in interface `ProcessForkOptions`
      Parameters:
        `executable` - The executable. Must not be null.

    - #### executable

          public JavaExec executable​(Object executable)

      Sets the name of the executable to use.
      Specified by:
        `executable` in interface `ProcessForkOptions`
      Parameters:
        `executable` - The executable. Must not be null.
      Returns:
        this

    - #### getWorkingDir

          @Internal
          public File getWorkingDir()

      Returns the working directory for the process. Defaults to the project directory.
      Specified by:
        `getWorkingDir` in interface `ProcessForkOptions`
      Returns:
        The working directory. Never returns null.

    - #### setWorkingDir

          public void setWorkingDir​(File dir)

      Sets the working directory for the process.
      Specified by:
        `setWorkingDir` in interface `ProcessForkOptions`
      Parameters:
        `dir` - The working directory. Must not be null.

    - #### setWorkingDir

          public void setWorkingDir​(Object dir)

      Sets the working directory for the process. The supplied argument is evaluated as per `Project.file(Object)`.
      Specified by:
        `setWorkingDir` in interface `ProcessForkOptions`
      Parameters:
        `dir` - The working directory. Must not be null.

    - #### workingDir

          public JavaExec workingDir​(Object dir)

      Sets the working directory for the process. The supplied argument is evaluated as per `Project.file(Object)`.
      Specified by:
        `workingDir` in interface `ProcessForkOptions`
      Parameters:
        `dir` - The working directory. Must not be null.
      Returns:
        this

    - #### getEnvironment

          @Internal
          public Map<String,​Object> getEnvironment()

      The environment variables to use for the process. Defaults to the environment of this process.
      Specified by:
        `getEnvironment` in interface `ProcessForkOptions`
      Returns:
        The environment. Returns an empty map when there are no environment variables.

    - #### setEnvironment

          public void setEnvironment​(Map<String,​?> environmentVariables)

      Sets the environment variable to use for the process.
      Specified by:
        `setEnvironment` in interface `ProcessForkOptions`
      Parameters:
        `environmentVariables` - The environment variables. Must not be null.

    - #### environment

          public JavaExec environment​(String name,
                                      Object value)

      Adds an environment variable to the environment for this process.
      Specified by:
        `environment` in interface `ProcessForkOptions`
      Parameters:
        `name` - The name of the variable.
        `value` - The value for the variable. Must not be null.
      Returns:
        this

    - #### environment

          public JavaExec environment​(Map<String,​?> environmentVariables)

      Adds some environment variables to the environment for this process.
      Specified by:
        `environment` in interface `ProcessForkOptions`
      Parameters:
        `environmentVariables` - The environment variables. Must not be null.
      Returns:
        this

    - #### copyTo

          public JavaExec copyTo​(ProcessForkOptions target)

      Copies these options to the given target options.
      Specified by:
        `copyTo` in interface `ProcessForkOptions`
      Parameters:
        `target` - The target options
      Returns:
        this

    - #### setStandardInput

          public JavaExec 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`
      Parameters:
        `inputStream` - The standard input stream for the process. Must not be null.
      Returns:
        this

    - #### getStandardInput

          @Internal
          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`
      Returns:
        The standard input stream.

    - #### setStandardOutput

          public JavaExec 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`
      Parameters:
        `outputStream` - The standard output 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`
      Returns:
        The output stream

    - #### setErrorOutput

          public JavaExec 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`
      Parameters:
        `outputStream` - The standard output error stream for the process. Must not be null.
      Returns:
        this

    - #### getErrorOutput

          @Internal
          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`
      Returns:
        The error output stream.

    - #### setIgnoreExitValue

          public JavaExecSpec setIgnoreExitValue​(boolean ignoreExitValue)

      Sets whether a non-zero exit value is ignored, or an exception thrown.
      Specified by:
        `setIgnoreExitValue` in interface `BaseExecSpec`
      Parameters:
        `ignoreExitValue` - whether a non-zero exit value is ignored, or an exception thrown
      Returns:
        this

    - #### isIgnoreExitValue

          @Input
          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`
      Returns:
        whether a non-zero exit value is ignored, or an exception thrown

    - #### getCommandLine

          @Internal
          public List<String> getCommandLine()

      Returns the full command line, including the executable plus its arguments.
      Specified by:
        `getCommandLine` in interface `BaseExecSpec`
      Returns:
        The full command line, including the executable plus its arguments

    - #### getJvmArgumentProviders

          public List<CommandLineArgumentProvider> getJvmArgumentProviders()

      Command line argument providers for the java process to fork.
      Specified by:
        `getJvmArgumentProviders` in interface `JavaForkOptions`