Package org.gradle.process

# Interface JavaForkOptions

All Superinterfaces:
  `ProcessForkOptions`

All Known Subinterfaces:
  `JavaExecSpec`

All Known Implementing Classes:
  `JavaExec`, `Test`

public interface JavaForkOptions extends ProcessForkOptions

Specifies the options to use to fork a Java process.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `JavaForkOptions`
  `bootstrapClasspath(@Nullable 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.
  `void`
  `debugOptions(Action<JavaDebugOptions> action)`
  Configures Java Debug Wire Protocol properties for the process.
  `Provider<List<String>>`
  `getAllJvmArgs()`
  Returns the full set of arguments to use to launch the JVM for the process.
  `ConfigurableFileCollection`
  `getBootstrapClasspath()`
  Returns the bootstrap classpath to use for the process.
  `Property<Boolean>`
  `getDebug()`
  Determines whether debugging is enabled for the test process.
  `JavaDebugOptions`
  `getDebugOptions()`
  Returns the Java Debug Wire Protocol properties for the process.
  `Property<String>`
  `getDefaultCharacterEncoding()`
  Returns the default character encoding to use.
  `Property<Boolean>`
  `getEnableAssertions()`
  A flag that marks if assertions are enabled for the process.
  `ListProperty<String>`
  `getJvmArgs()`
  The extra arguments to use to launch the JVM for the process.
  `ListProperty<CommandLineArgumentProvider>`
  `getJvmArgumentProviders()`
  Command line argument providers for the java process to fork.
  `Property<String>`
  `getMaxHeapSize()`
  Returns the maximum heap size for the process, if any.
  `Property<String>`
  `getMinHeapSize()`
  Returns the minimum heap size for the process, if any.
  `MapProperty<String,Object>`
  `getSystemProperties()`
  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.
  `JavaForkOptions`
  `systemProperties(Map<String,? extends @Nullable Object> properties)`
  Adds some system properties to use for the process.
  `JavaForkOptions`
  `systemProperty(String name, @Nullable 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, workingDir`

- ## Method Details

  - ### getSystemProperties

    @Input MapProperty<String,Object> getSystemProperties()
    System properties which will be used for the process.
    Returns:
      The system properties. Returns an empty map when there are no system properties.

  - ### systemProperties

    JavaForkOptions systemProperties(Map<String,? extends @Nullable Object> 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, @Nullable 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 Property<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.

  - ### getMinHeapSize

    @Optional @Input Property<String> getMinHeapSize()
    Returns the minimum heap size for the process, if any. Supports the units megabytes (e.g. "512m") and gigabytes (e.g. "1g").
    Returns:
      The minimum heap size. Returns null if the default minimum heap size should be used.

  - ### getMaxHeapSize

    @Optional @Input Property<String> getMaxHeapSize()
    Returns the maximum heap size for the process, if any. Supports the units megabytes (e.g. "512m") and gigabytes (e.g. "1g").
    Returns:
      The maximum heap size. Returns null if the default maximum heap size should be used.

  - ### getJvmArgs

    @Optional @Input ListProperty<String> getJvmArgs()
    The extra arguments to use to launch the JVM for the process.
    Returns:
      The list of arguments. Returns an empty list if there are no arguments.

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

    ListProperty<CommandLineArgumentProvider> getJvmArgumentProviders()
    Command line argument providers for the java process to fork.
    Since:
      4.6

  - ### getBootstrapClasspath

    @Classpath ConfigurableFileCollection 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.

  - ### bootstrapClasspath

    JavaForkOptions bootstrapClasspath(@Nullable Object... classpath)
    Adds the given values to the end of the bootstrap classpath for the process.
    Parameters:
      `classpath` - The classpath.
    Returns:
      this

  - ### getEnableAssertions

    @Input @Optional Property<Boolean> getEnableAssertions()
    A flag that marks if assertions are enabled for the process.

  - ### getDebug

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

    Since Gradle 5.6, you can configure the port and other Java debug properties via `debugOptions(Action)`.

  - ### getDebugOptions

    JavaDebugOptions getDebugOptions()
    Returns the Java Debug Wire Protocol properties for the process. If enabled then the `-agentlib:jdwp=...` will be appended to the JVM arguments with the configuration from the parameter.
    Since:
      5.6

  - ### debugOptions

    void debugOptions(Action<JavaDebugOptions> action)
    Configures Java Debug Wire Protocol properties for the process. If `getDebug()` (boolean)} is enabled then the `-agentlib:jdwp=...` will be appended to the JVM arguments with the configuration from the parameter.
    Parameters:
      `action` - the Java debug configuration
    Since:
      5.6

  - ### getAllJvmArgs

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

  - ### copyTo

    JavaForkOptions copyTo(JavaForkOptions options)
    Copies these options to the given options.
    Parameters:
      `options` - The target options.
    Returns:
      this