Public/Tasks/Invoke-EnsureJavaHomeTask.ps1
#Requires -Modules SitecoreInstallFramework, SitecoreFundamentals Set-StrictMode -Version Latest Function Invoke-EnsureJavaHomeTask { [CmdletBinding()] param ( [string]$TaskName = "EnsureJavaHome" ) Set-PSDebug -Strict if (Test-Path "HKLM:\SOFTWARE\JavaSoft\Java Runtime Environment") { $jreversion = (Get-ItemProperty -Path "HKLM:\SOFTWARE\JavaSoft\Java Runtime Environment" -Name CurrentVersion).CurrentVersion $jrehome = (Get-ItemProperty -Path "HKLM:\SOFTWARE\JavaSoft\Java Runtime Environment\$jreversion" -Name JavaHome).JavaHome if ($PSCmdlet.ShouldProcess($jrehome)) { # Ensure Java environment variable $jrehomeenv = [Environment]::GetEnvironmentVariable("JAVA_HOME", [EnvironmentVariableTarget]::Machine) if ($jrehome -ne $jrehomeenv) { Write-Verbose "Setting JAVA_HOME environment variable" [Environment]::SetEnvironmentVariable("JAVA_HOME", $jrehome, [EnvironmentVariableTarget]::Machine) Write-TaskInfo "SET JAVA_HOME environment variable to $jrehome" -Tag Java -TaskName $TaskName } else { Write-TaskInfo "JAVA_JOME matches currenly installed version of Java: $jrehome" -Tag Java -TaskName $TaskName } } } else { throw 'Could not set JAVA_HOME environment variable. Java is not installed.' } } Register-SitecoreInstallExtension -Command Invoke-EnsureJavaHomeTask -As EnsureJavaHome -Type Task -Force |