org.gradle.process

## Interface JavaForkOptions

- All Superinterfaces:
    ProcessForkOptions
  All Known Subinterfaces:
    JavaExecSpec
  All Known Implementing Classes:
    JavaExec, RhinoShellExec, Test

      public interface JavaForkOptions
      extends ProcessForkOptions

  Specifies the options to use to fork a Java process.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `JavaForkOptions` | `bootstrapClasspath(Object... classpath)` Adds the given values to the end of the bootstrap classpath for the process.
    `JavaForkOptions` | `copyTo(JavaForkOptions options)` Copies these options to the given options.
    `List<String>` | `getAllJvmArgs()` Returns the full set of arguments to use to launch the JVM for the process.
    `FileCollection` | `getBootstrapClasspath()` Returns the bootstrap classpath to use for the process.
    `boolean` | `getDebug()` Returns true if debugging is enabled for the process.
    `String` | `getDefaultCharacterEncoding()` Returns the default character encoding to use.
    `boolean` | `getEnableAssertions()` Returns true if assertions are enabled for the process.
    `List<String>` | `getJvmArgs()` Returns the extra arguments to use to launch the JVM for the process.
    `String` | `getMaxHeapSize()` Returns the maximum heap size for the process, if any.
    `String` | `getMinHeapSize()` Returns the minimum heap size for the process, if any.
    `Map<String,Object>` | `getSystemProperties()` Returns the system properties which will be used for the process.
    `JavaForkOptions` | `jvmArgs(Iterable<?> arguments)` Adds some arguments to use to launch the JVM for the process.
    `JavaForkOptions` | `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.
    `void` | `setBootstrapClasspath(FileCollection classpath)` Sets the bootstrap classpath to use for the process.
    `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` | `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.
    `void` | `setMaxHeapSize(String heapSize)` Sets the maximum heap size for the process.
    `void` | `setMinHeapSize(String heapSize)` Sets the minimum heap size for the process.
    `void` | `setSystemProperties(Map<String,?> properties)` Sets the system properties to use for the process.
    `JavaForkOptions` | `systemProperties(Map<String,?> properties)` Adds some system properties to use for the process.
    `JavaForkOptions` | `systemProperty(String name, Object value)` Adds a system property to use for the process.

    - ### Methods inherited from interface org.gradle.process.ProcessForkOptions

      `copyTo, environment, environment, executable, getEnvironment, getExecutable, getWorkingDir, setEnvironment, setExecutable, setExecutable, setWorkingDir, setWorkingDir, workingDir`

- - ### Method Detail

    - #### getSystemProperties

          @Input
          Map<String,Object> getSystemProperties()

      Returns the system properties which will be used for the process.
      Returns:
        The system properties. Returns an empty map when there are no system properties.

    - #### setSystemProperties

          void setSystemProperties(Map<String,?> properties)

      Sets the system properties to use for the process.
      Parameters:
        `properties` - The system properties. Must not be null.

    - #### systemProperties

          JavaForkOptions systemProperties(Map<String,?> properties)

      Adds some system properties to use for the process.
      Parameters:
        `properties` - The system properties. Must not be null.
      Returns:
        this

    - #### systemProperty

          JavaForkOptions systemProperty(String name,
                                         Object value)

      Adds a system property to use for the process.
      Parameters:
        `name` - The name of the property
        `value` - The value for the property. May be null.
      Returns:
        this

    - #### getDefaultCharacterEncoding

          @Optional
           @Input
          String getDefaultCharacterEncoding()

      Returns the default character encoding to use.
      Returns:
        The default character encoding. Returns null if the `default character encoding of this JVM` should be used.

    - #### setDefaultCharacterEncoding

          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 `setSystemProperties(java.util.Map)` or similar will have no effect as this value will be overridden by the value specified by `getDefaultCharacterEncoding()`.
      Parameters:
        `defaultCharacterEncoding` - The default character encoding. Use null to use `this JVM's default charset`

    - #### getMinHeapSize

          @Optional
           @Input
          String getMinHeapSize()

      Returns the minimum heap size for the process, if any.
      Returns:
        The minimum heap size. Returns null if the default minimum heap size should be used.

    - #### setMinHeapSize

          void setMinHeapSize(String heapSize)

      Sets the minimum heap size for the process.
      Parameters:
        `heapSize` - The minimum heap size. Use null for the default minimum heap size.

    - #### getMaxHeapSize

          @Optional
           @Input
          String getMaxHeapSize()

      Returns the maximum heap size for the process, if any.
      Returns:
        The maximum heap size. Returns null if the default maximum heap size should be used.

    - #### setMaxHeapSize

          void setMaxHeapSize(String heapSize)

      Sets the maximum heap size for the process.
      Parameters:
        `heapSize` - The heap size. Use null for the default maximum heap size.

    - #### getJvmArgs

          @Optional
           @Input
          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.
      Returns:
        The arguments. Returns an empty list if there are no arguments.

    - #### setJvmArgs

          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.
      Parameters:
        `arguments` - The arguments. Must not be null.
      Since:
        4.0

    - #### setJvmArgs

          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.
      Parameters:
        `arguments` - The arguments. Must not be null.

    - #### jvmArgs

          JavaForkOptions jvmArgs(Iterable<?> arguments)

      Adds some arguments to use to launch the JVM for the process.
      Parameters:
        `arguments` - The arguments. Must not be null.
      Returns:
        this

    - #### jvmArgs

          JavaForkOptions jvmArgs(Object... arguments)

      Adds some arguments to use to launch the JVM for the process.
      Parameters:
        `arguments` - The arguments.
      Returns:
        this

    - #### getBootstrapClasspath

          @Classpath
          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.
      Returns:
        The bootstrap classpath. Never returns null.

    - #### setBootstrapClasspath

          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.
      Parameters:
        `classpath` - The classpath. Must not be null. Can be empty.

    - #### bootstrapClasspath

          JavaForkOptions bootstrapClasspath(Object... classpath)

      Adds the given values to the end of the bootstrap classpath for the process.
      Parameters:
        `classpath` - The classpath.
      Returns:
        this

    - #### getEnableAssertions

          @Input
          boolean getEnableAssertions()

      Returns true if assertions are enabled for the process.
      Returns:
        true if assertions are enabled, false if disabled

    - #### setEnableAssertions

          void setEnableAssertions(boolean enabled)

      Enable or disable assertions for the process.
      Parameters:
        `enabled` - true to enable assertions, false to disable.

    - #### getDebug

          @Input
          boolean getDebug()

      Returns true if debugging is enabled for the process. When enabled, the process is started suspended and listening on port 5005.
      Returns:
        true when debugging is enabled, false to disable.

    - #### setDebug

          void setDebug(boolean enabled)

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

    - #### getAllJvmArgs

          @Internal
          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.
      Returns:
        The arguments. Returns an empty list if there are no arguments.

    - #### setAllJvmArgs

          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.
      Parameters:
        `arguments` - The arguments. Must not be null.
      Since:
        4.0

    - #### setAllJvmArgs

          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.
      Parameters:
        `arguments` - The arguments. Must not be null.

    - #### copyTo

          JavaForkOptions copyTo(JavaForkOptions options)

      Copies these options to the given options.
      Parameters:
        `options` - The target options.
      Returns:
        this