|  | @@ -51,6 +51,7 @@ import java.time.ZonedDateTime;
 | 
	
		
			
				|  |  |  import java.util.Arrays;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  |  import java.util.Locale;
 | 
	
		
			
				|  |  | +import java.util.Optional;
 | 
	
		
			
				|  |  |  import java.util.Random;
 | 
	
		
			
				|  |  |  import java.util.concurrent.atomic.AtomicReference;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
	
		
			
				|  | @@ -97,24 +98,25 @@ public class GlobalBuildInfoPlugin implements Plugin<Project> {
 | 
	
		
			
				|  |  |          JavaVersion minimumCompilerVersion = JavaVersion.toVersion(getResourceContents("/minimumCompilerVersion"));
 | 
	
		
			
				|  |  |          JavaVersion minimumRuntimeVersion = JavaVersion.toVersion(getResourceContents("/minimumRuntimeVersion"));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        File runtimeJavaHome = findRuntimeJavaHome();
 | 
	
		
			
				|  |  | -        boolean isRuntimeJavaHomeSet = Jvm.current().getJavaHome().equals(runtimeJavaHome) == false;
 | 
	
		
			
				|  |  | +        Optional<File> selectedRuntimeJavaHome = findRuntimeJavaHome();
 | 
	
		
			
				|  |  | +        File actualRuntimeJavaHome = selectedRuntimeJavaHome.orElse(Jvm.current().getJavaHome());
 | 
	
		
			
				|  |  | +        boolean isRuntimeJavaHomeSet = selectedRuntimeJavaHome.isPresent();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          GitInfo gitInfo = GitInfo.gitInfo(project.getRootDir());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          BuildParams.init(params -> {
 | 
	
		
			
				|  |  |              params.reset();
 | 
	
		
			
				|  |  | -            params.setRuntimeJavaHome(runtimeJavaHome);
 | 
	
		
			
				|  |  | +            params.setRuntimeJavaHome(actualRuntimeJavaHome);
 | 
	
		
			
				|  |  |              params.setJavaToolChainSpec(resolveToolchainSpecFromEnv());
 | 
	
		
			
				|  |  |              params.setRuntimeJavaVersion(
 | 
	
		
			
				|  |  |                  determineJavaVersion(
 | 
	
		
			
				|  |  |                      "runtime java.home",
 | 
	
		
			
				|  |  | -                    runtimeJavaHome,
 | 
	
		
			
				|  |  | +                    actualRuntimeJavaHome,
 | 
	
		
			
				|  |  |                      isRuntimeJavaHomeSet ? minimumRuntimeVersion : Jvm.current().getJavaVersion()
 | 
	
		
			
				|  |  |                  )
 | 
	
		
			
				|  |  |              );
 | 
	
		
			
				|  |  |              params.setIsRuntimeJavaHomeSet(isRuntimeJavaHomeSet);
 | 
	
		
			
				|  |  | -            JvmInstallationMetadata runtimeJdkMetaData = metadataDetector.getMetadata(getJavaInstallation(runtimeJavaHome));
 | 
	
		
			
				|  |  | +            JvmInstallationMetadata runtimeJdkMetaData = metadataDetector.getMetadata(getJavaInstallation(actualRuntimeJavaHome));
 | 
	
		
			
				|  |  |              params.setRuntimeJavaDetails(formatJavaVendorDetails(runtimeJdkMetaData));
 | 
	
		
			
				|  |  |              params.setJavaVersions(getAvailableJavaVersions());
 | 
	
		
			
				|  |  |              params.setMinimumCompilerVersion(minimumCompilerVersion);
 | 
	
	
		
			
				|  | @@ -298,19 +300,19 @@ public class GlobalBuildInfoPlugin implements Plugin<Project> {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private File findRuntimeJavaHome() {
 | 
	
		
			
				|  |  | +    private Optional<File> findRuntimeJavaHome() {
 | 
	
		
			
				|  |  |          String runtimeJavaProperty = System.getProperty("runtime.java");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if (runtimeJavaProperty != null) {
 | 
	
		
			
				|  |  | -            return resolveJavaHomeFromToolChainService(runtimeJavaProperty);
 | 
	
		
			
				|  |  | +            return Optional.of(resolveJavaHomeFromToolChainService(runtimeJavaProperty));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          String env = System.getenv("RUNTIME_JAVA_HOME");
 | 
	
		
			
				|  |  |          if (env != null) {
 | 
	
		
			
				|  |  | -            return new File(env);
 | 
	
		
			
				|  |  | +            return Optional.of(new File(env));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          // fall back to tool chain if set.
 | 
	
		
			
				|  |  |          env = System.getenv("JAVA_TOOLCHAIN_HOME");
 | 
	
		
			
				|  |  | -        return env == null ? Jvm.current().getJavaHome() : new File(env);
 | 
	
		
			
				|  |  | +        return env == null ? Optional.empty() : Optional.of(new File(env));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @NotNull
 |