# 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.
`javaHome` | The Java home which contains the compiler to use.
`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. Not present by default, in which case the directory will be chosen automatically.

### Methods

No methods

### Script blocks

No script blocks

### Property details

#### ``Provider`<`List`<`String`>>` `allJvmArgs`

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:
  `[]`

#### ``Property`<`String`>` `executable`

The compiler executable to be used.

Only takes effect if `CompileOptions.fork` is `true`. Not present by default.

Setting the executable disables task output caching.

Default:
  `null`

#### `File` `javaHome`

The Java home which contains the compiler to use.

Only takes effect if `CompileOptions.fork` is `true`. Defaults to `null`.

Default:
  `null`

#### ``ListProperty`<`String`>` `jvmArgs`

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

Default:
  `[]`

#### ``ListProperty`<`CommandLineArgumentProvider`>` `jvmArgumentProviders`

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:
  `[]`

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

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

#### ``Property`<`String`>` `tempDir`

The directory used for temporary files that may be created to pass command line arguments to the compiler process. Not present by default, in which case the directory will be chosen automatically.

Default:
  `null`