# Class ForkOptions

java.lang.Object
org.gradle.api.tasks.compile.AbstractOptions
org.gradle.api.tasks.compile.BaseForkOptions
org.gradle.api.tasks.compile.ForkOptions

All Implemented Interfaces:
  `Serializable`

public class ForkOptions extends BaseForkOptions
Fork options for Java compilation. Only take effect if `CompileOptions.fork` is `true`.

See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`ForkOptions()`

## Method Summary

Modifier and Type
Method
Description
`protected boolean`
`excludeFromAntProperties(String fieldName)`
`String`
`getExecutable()`
Returns the compiler executable to be used.
`File`
`getJavaHome()`
Returns the Java home which contains the compiler to use.
`String`
`getTempDir()`
Returns the directory used for temporary files that may be created to pass command line arguments to the compiler process.
`void`
`setExecutable(String executable)`
Sets the compiler executable to be used.
`void`
`setJavaHome(File javaHome)`
Sets the Java home which contains the compiler to use.
`void`
`setTempDir(String tempDir)`
Sets the directory used for temporary files that may be created to pass command line arguments to the compiler process.

### Methods inherited from class BaseForkOptions

`getJvmArgs, getMemoryInitialSize, getMemoryMaximumSize, setJvmArgs, setMemoryInitialSize, setMemoryMaximumSize`

### Methods inherited from class AbstractOptions

`define, getAntPropertyName, getAntPropertyValue, optionMap`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### ForkOptions

public ForkOptions()

## Method Details

### getExecutable

@Input @Optional public String getExecutable()
Returns 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.

### setExecutable

public void setExecutable(String executable)
Sets 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.

### getJavaHome

@Internal @Incubating public File getJavaHome()
Returns 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`.

Since:
  3.5

### setJavaHome

@Incubating public void setJavaHome(File javaHome)
Sets 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`.

Since:
  3.5

### getTempDir

@Internal public String getTempDir()
Returns 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.

### setTempDir

public void setTempDir(String tempDir)
Sets 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.

### excludeFromAntProperties

protected boolean excludeFromAntProperties(String fieldName)

Overrides:
  `excludeFromAntProperties` in class `BaseForkOptions`