[Windows] Fix java 11 installation (#887)

* Fix java 11 installation, add tests

* change java installation to use function

* remove extra line
This commit is contained in:
Mikhail Timofeev
2020-05-16 12:31:21 +03:00
committed by GitHub
parent 5160bfa626
commit a8f49b6630
2 changed files with 96 additions and 62 deletions

View File

@@ -3,6 +3,52 @@
## Desc: Validate various JDKs and java tools
################################################################################
Function Validate-JavaVersion {
param (
[Parameter(Mandatory)] [string] $Version,
[switch] $Default
)
Write-Host "Checking Java $version"
# Set Path to get Java
if (-not $Default)
{
# Take 7 & 8 for versions 1.7 and 1.8
$versionNumber = $version.Split(".") | Select-Object -Last 1
$javaBin = [System.Environment]::GetEnvironmentVariable("JAVA_HOME_${versionNumber}_X64") + "\bin;"
$env:Path = $javaBin + $env:Path
}
$isJavaExists = $($(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<vendor>.+) version "(?<version>.+)".*'
if ($isJavaExists)
{
$javaVersion = $matches.version
}
else
{
Write-Host "Java $version was not found"
exit 1
}
$isJavaCorrect = $javaVersion.StartsWith($version)
if($isJavaCorrect)
{
Write-Host "Java $javaVersion found"
# Reset Path to the default one in case we need to check the default Java later
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
return $javaVersion
}
else
{
Write-Host "Expected Java $version, but found $javaVersion"
exit 1
}
}
if((Get-Command -Name 'java') -and (Get-Command -Name 'mvn') -and (Get-Command -Name 'ant') -and (Get-Command -Name 'gradle'))
{
Write-Host "Java $(java -version) on path"
@@ -16,32 +62,12 @@ else
exit 1
}
Write-Host "Checking installed Java versions"
if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<vendor>.+) version "(?<version>.+)".*' )
{
$javaVersion = $Matches.version
}
$env:Path = $env:JAVA_HOME_7_X64 + "\bin;" + $env:Path
if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<vendor>.+) version "(?<version>.+)".*' )
{
$java7Version = $Matches.version
}
$env:Path = $env:JAVA_HOME_11_X64 + "\bin;" + $env:Path
if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<vendor>.+) version "(?<version>.+)".*' )
{
$java11Version = $Matches.version
}
$env:Path = $env:JAVA_HOME_13_X64 + "\bin;" + $env:Path
if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<vendor>.+) version "(?<version>.+)".*' )
{
$java13Version = $Matches.version
}
$java7Version = Validate-JavaVersion -Version "1.7"
$java8Version = Validate-JavaVersion -Version "1.8" -Default
$java11Version = Validate-JavaVersion -Version "11"
$java13Version = Validate-JavaVersion -Version "13"
if( $(ant -version) -match 'Apache Ant\(TM\) version (?<version>.*) compiled.*' )
{
@@ -62,7 +88,7 @@ if( $( $(gradle -version) | Out-String) -match 'Gradle (?<version>.*)' )
$SoftwareName = "Java Development Kit"
$Description = @"
#### $javaVersion (default)
#### $java8Version (default)
_Environment:_
* JAVA_HOME: location of JDK