# Class UpdateDaemonJvm

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
org.gradle.buildconfiguration.tasks.UpdateDaemonJvm

All Implemented Interfaces:
  `Comparable<Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.TaskInternal, Named, ExtensionAware, Task, Configurable<Task>`

@DisableCachingByDefault(because="Not worth caching") public abstract class UpdateDaemonJvm extends DefaultTask
Generates or updates the Gradle Daemon JVM criteria. This controls the version of the JVM required to run the Gradle Daemon.

Since:
  8.8

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final ProblemId`
  `TASK_CONFIGURATION_PROBLEM_ID`
  The problem id for task configuration problems.

  ### Fields inherited from interface Task

  `TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `UpdateDaemonJvm(org.gradle.internal.buildconfiguration.tasks.DaemonJvmPropertiesModifier daemonJvmPropertiesModifier)`
  Constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `(package private) void`
  `generate()`
  `List<String>`
  `getAvailableVendors()`
  Returns the supported JVM vendors.
  `abstract Property<JavaLanguageVersion>`
  `getLanguageVersion()`
  The version of the JVM required to run the Gradle Daemon.
  `abstract Property<Boolean>`
  `getNativeImageCapable()`
  Indicates it the native-image capability is required.
  `abstract RegularFileProperty`
  `getPropertiesFile()`
  The file to write the requested daemon JVM criteria to.
  `abstract MapProperty<BuildPlatform, URI>`
  `getToolchainDownloadUrls()`
  The download URLs for the toolchains for the given platforms.
  `abstract SetProperty<BuildPlatform>`
  `getToolchainPlatforms()`
  The set of `BuildPlatform` for which download links should be generated.
  `abstract Property<JvmVendorSpec>`
  `getVendor()`
  Configures the vendor spec for the daemon toolchain properties generation.

  ### Methods inherited from class DefaultTask

  `compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

  ### Methods inherited from class org.gradle.api.internal.AbstractTask

  `acceptServiceReferences, appendParallelSafeAction, doNotTrackState, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getLoggingManager, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, service, setImpliesSubProjects`

  ### Methods inherited from class Object

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

  ### Methods inherited from interface Task

  `doNotTrackState, notCompatibleWithConfigurationCache, service`

- ## Field Details

  - ### TASK_CONFIGURATION_PROBLEM_ID

    public static final ProblemId TASK_CONFIGURATION_PROBLEM_ID
    The problem id for task configuration problems.
    Since:
      8.13

- ## Constructor Details

  - ### UpdateDaemonJvm

    @Inject public UpdateDaemonJvm(org.gradle.internal.buildconfiguration.tasks.DaemonJvmPropertiesModifier daemonJvmPropertiesModifier)
    Constructor.
    Since:
      8.8

- ## Method Details

  - ### generate

    void generate()

  - ### getPropertiesFile

    @OutputFile public abstract RegularFileProperty getPropertiesFile()
    The file to write the requested daemon JVM criteria to. "gradle/gradle-daemon-jvm.properties"
    Since:
      8.8

  - ### getLanguageVersion

    @Input @Optional public abstract Property<JavaLanguageVersion> getLanguageVersion()
    The version of the JVM required to run the Gradle Daemon.

    By convention, for the task created on the root project, Gradle will use the JVM version of the current JVM.

    Since:
      8.13

  - ### getVendor

    @Input @Optional public abstract Property<JvmVendorSpec> getVendor()
    Configures the vendor spec for the daemon toolchain properties generation.
    Since:
      8.13

  - ### getAvailableVendors

    public List<String> getAvailableVendors()
    Returns the supported JVM vendors.
    Returns:
      supported JVM vendors
    Since:
      8.10

  - ### getNativeImageCapable

    @Input @Optional public abstract Property<Boolean> getNativeImageCapable()
    Indicates it the native-image capability is required.
    Since:
      8.14

  - ### getToolchainPlatforms

    @Internal public abstract SetProperty<BuildPlatform> getToolchainPlatforms()
    The set of `BuildPlatform` for which download links should be generated.

    By convention, for the task created on the root project, Gradle sources those from the combination of all supported `OperatingSystem` and the following architectures: `Architecture.X86_64` and `Architecture.AARCH64`.

    Since:
      8.13

  - ### getToolchainDownloadUrls

    @Input public abstract MapProperty<BuildPlatform, URI> getToolchainDownloadUrls()
    The download URLs for the toolchains for the given platforms.

    By convention, for the task created on the root project, Gradle will combine the `build platforms`, `JVM version` and `getVendor()` to resolve download URLs using the configured `Java toolchain repositories`.

    If the convention applies and no toolchain repositories are defined, an exception will be thrown.

    Since:
      8.13