Package 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 | 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()` | 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.
    `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` | `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

          @Nullable
          @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​(@Nullable
                                           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

          @Nullable
          @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​(@Nullable
                              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

          @Nullable
          @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​(@Nullable
                              String heapSize)

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

    - #### getJvmArgs

          @Nullable
          @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​(@Nullable
                          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​(@Nullable
                          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

    - #### getJvmArgumentProviders

          @Incubating
          List<CommandLineArgumentProvider> getJvmArgumentProviders()

      Command line argument providers for the java process to fork.
      Since:
        4.6

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

      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()`.
      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