# ForkOptions

API Documentation: | `ForkOptions`

Fork options for Java compilation. Only take effect if `CompileOptions.fork` is `true`.

### Properties

Property | Description
`allJvmArgs` | Incubating The full set of arguments to use to launch the JVM for the compiler process. This includes arguments to define system properties, the minimum/maximum heap size, and the bootstrap classpath.
`executable` | The compiler executable to be used. If set, a new compiler process will be forked for every compile task. Defaults to `null`.
`javaHome` | The Java home which contains the compiler to use. If set, a new compiler process will be forked for every compile task. Defaults to `null`.
`jvmArgs` | Returns any additional JVM arguments for the compiler process. Defaults to the empty list.
`jvmArgumentProviders` | Incubating Returns any additional JVM argument providers for the compiler process.
`memoryInitialSize` | The initial heap size for the compiler process. Defaults to `null`, in which case the JVM's default will be used.
`memoryMaximumSize` | The maximum heap size for the compiler process. Defaults to `null`, in which case the JVM's default will be used.
`tempDir` | The directory used for temporary files that may be created to pass command line arguments to the compiler process. Defaults to `null`, in which case the directory will be chosen automatically.

### Methods

No methods

### Script blocks

No script blocks

### Property details

#### ``List`<`String`>` `allJvmArgs` (read-only)

Note: This property is incubating and may change in a future version of Gradle.

The full set of arguments to use to launch the JVM for the compiler process. This includes arguments to define system properties, the minimum/maximum heap size, and the bootstrap classpath.

Default:
  `[]`

#### `String` `executable`

The compiler executable to be used. If set, a new compiler process will be forked for every compile task. Defaults to `null`.

Setting the executable disables task output caching.

Default:
  `null`

#### `File` `javaHome`

The Java home which contains the compiler to use. If set, a new compiler process will be forked for every compile task. Defaults to `null`.

Default:
  `null`

#### ``List`<`String`>` `jvmArgs`

Returns any additional JVM arguments for the compiler process. Defaults to the empty list.

Default:
  `[]`

#### ``List`<`CommandLineArgumentProvider`>` `jvmArgumentProviders` (read-only)

Note: This property is incubating and may change in a future version of Gradle.

Returns any additional JVM argument providers for the compiler process.

Default:
  `[]`

#### `String` `memoryInitialSize`

The initial heap size for the compiler process. Defaults to `null`, in which case the JVM's default will be used.

Default:
  `null`

#### `String` `memoryMaximumSize`

The maximum heap size for the compiler process. Defaults to `null`, in which case the JVM's default will be used.

Default:
  `null`

#### `String` `tempDir`

The directory used for temporary files that may be created to pass command line arguments to the compiler process. Defaults to `null`, in which case the directory will be chosen automatically.

Default:
  `null`