# Class ForkOptions

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

All Implemented Interfaces:
  `Serializable`

public abstract class ForkOptions extends ProviderAwareCompilerDaemonForkOptions
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
  `@Nullable String`
  `getExecutable()`
  Returns the compiler executable to be used.
  `@Nullable File`
  `getJavaHome()`
  Returns the Java home which contains the compiler to use.
  `@Nullable String`
  `getTempDir()`
  Returns the directory used for temporary files that may be created to pass command line arguments to the compiler process.
  `void`
  `setExecutable(@Nullable String executable)`
  Sets the compiler executable to be used.
  `void`
  `setJavaHome(@Nullable File javaHome)`
  Sets the Java home which contains the compiler to use.
  `void`
  `setTempDir(@Nullable 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 ProviderAwareCompilerDaemonForkOptions

  `getAllJvmArgs, getJvmArgumentProviders`

  ### Methods inherited from class BaseForkOptions

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

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### ForkOptions

    public ForkOptions()

- ## Method Details

  - ### getExecutable

    @Optional @Input public @Nullable String getExecutable()
    Returns the compiler executable to be used.

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

    Setting the executable disables task output caching.

  - ### setExecutable

    public void setExecutable(@Nullable String executable)
    Sets the compiler executable to be used.

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

    Setting the executable disables task output caching.

  - ### getJavaHome

    @Internal public @Nullable File getJavaHome()
    Returns the Java home which contains the compiler to use.

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

    Since:
      3.5

  - ### setJavaHome

    public void setJavaHome(@Nullable File javaHome)
    Sets the Java home which contains the compiler to use.

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

    Since:
      3.5

  - ### getTempDir

    @Internal public @Nullable 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(@Nullable 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.