Fix Java version detection on Windows

Fixes https://github.com/sbt/sbt/issues/4055
Adds JDK 10 testing on Windows
This commit is contained in:
Eugene Yokota 2018-04-05 20:53:11 -04:00
parent a638ad49ac
commit b2fdb7685f
6 changed files with 27 additions and 26 deletions

View File

@ -5,7 +5,7 @@ init:
install: install:
- cinst jdk8 -params 'installdir=C:\\jdk8' - cinst jdk8 -params 'installdir=C:\\jdk8'
- cinst jdk9 -version 9.0.4.11 -params 'installdir=C:\\jdk9' - cinst jdk10 -params 'installdir=C:\\jdk10'
- SET JAVA_HOME=C:\jdk8 - SET JAVA_HOME=C:\jdk8
- SET PATH=C:\jdk8\bin;%PATH% - SET PATH=C:\jdk8\bin;%PATH%
@ -22,7 +22,7 @@ install:
- SET SBT_OPTS=-XX:MaxPermSize=2g -Xmx4g -Dfile.encoding=UTF8 - SET SBT_OPTS=-XX:MaxPermSize=2g -Xmx4g -Dfile.encoding=UTF8
test_script: test_script:
- sbt "-Dsbt.build.version=1.0.4" universal:packageBin - sbt "-Dsbt.build.version=1.1.2" universal:packageBin
- cd citest - cd citest
- test.bat - test.bat
- test1.bat - test1.bat

View File

@ -9,8 +9,8 @@ SETLOCAL
"freshly-baked\sbt\bin\sbt" about "freshly-baked\sbt\bin\sbt" about
SET JAVA_HOME=C:\jdk9 SET JAVA_HOME=C:\jdk10
SET PATH=C:\jdk9\bin;%PATH% SET PATH=C:\jdk10\bin;%PATH%
SET SBT_OPTS=-Xmx4g -Dfile.encoding=UTF8 SET SBT_OPTS=-Xmx4g -Dfile.encoding=UTF8
"freshly-baked\sbt\bin\sbt" about "freshly-baked\sbt\bin\sbt" about

View File

@ -2,8 +2,8 @@
SETLOCAL SETLOCAL
SET JAVA_HOME=C:\jdk9 SET JAVA_HOME=C:\jdk10
SET PATH=C:\jdk9\bin;%PATH% SET PATH=C:\jdk10\bin;%PATH%
SET SBT_OPTS=-Xmx4g -Dfile.encoding=UTF8 SET SBT_OPTS=-Xmx4g -Dfile.encoding=UTF8
"freshly-baked\sbt\bin\sbt" about 1> output.txt 2> err.txt "freshly-baked\sbt\bin\sbt" about 1> output.txt 2> err.txt

View File

@ -2,8 +2,8 @@
SETLOCAL SETLOCAL
SET JAVA_HOME=C:\jdk9 SET JAVA_HOME=C:\jdk10
SET PATH=C:\jdk9\bin;%PATH% SET PATH=C:\jdk10\bin;%PATH%
SET SBT_OPTS=-Xmx4g -Dfile.encoding=UTF8 SET SBT_OPTS=-Xmx4g -Dfile.encoding=UTF8
"freshly-baked\sbt\bin\sbt" check "freshly-baked\sbt\bin\sbt" check

View File

@ -2,8 +2,8 @@
SETLOCAL SETLOCAL
SET JAVA_HOME=C:\jdk9 SET JAVA_HOME=C:\jdk10
SET PATH=C:\jdk9\bin;%PATH% SET PATH=C:\jdk10\bin;%PATH%
SET SBT_OPTS=-Xmx4g -Dfile.encoding=UTF8 SET SBT_OPTS=-Xmx4g -Dfile.encoding=UTF8
SET BASE_DIR=%CD% SET BASE_DIR=%CD%

View File

@ -99,24 +99,25 @@ goto end
goto :eof goto :eof
:process :process
rem parses 1.7, 1.8, 9, etc out of java version "1.8.0_91" rem Parses x out of 1.x; for example 8 out of java version 1.8.0_xx
"%_JAVACMD%" -Xmx512M -version 2> "%TEMP%\out.txt" rem Otherwise, parses the major version; 9 out of java version 9-ea
set JAVA_VERSION=0 set JAVA_VERSION=0
>nul findstr /c:"version \"9" "%TEMP%\out.txt" for /f "tokens=3" %%g in ('%_JAVACMD% -Xms32M -Xmx32M -version 2^>^&1 ^| findstr /i "version"') do (
if /I %ERRORLEVEL% EQU 0 (set JAVA_VERSION=9) set JAVA_VERSION=%%g
>nul findstr /c:"version \"1.8" "%TEMP%\out.txt" )
if /I %ERRORLEVEL% EQU 0 (set JAVA_VERSION=1.8) set JAVA_VERSION=%JAVA_VERSION:"=%
>nul findstr /c:"version \"1.7" "%TEMP%\out.txt" for /f "delims=.-_ tokens=1-2" %%v in ("%JAVA_VERSION%") do (
if /I %ERRORLEVEL% EQU 0 (set JAVA_VERSION=1.7) if /I "%%v" EQU "1" (
>nul findstr /c:"version \"1.6" "%TEMP%\out.txt" set JAVA_VERSION=%%w
if /I %ERRORLEVEL% EQU 0 (set JAVA_VERSION=1.6) ) else (
>nul findstr /c:"version \"1.5" "%TEMP%\out.txt" set JAVA_VERSION=%%v
if /I %ERRORLEVEL% EQU 0 (set JAVA_VERSION=1.5) )
)
exit /B 0 exit /B 0
:checkjava :checkjava
set required_version=1.6 set required_version=6
if /I "%JAVA_VERSION%" GEQ "%required_version%" ( if /I %JAVA_VERSION% GEQ %required_version% (
exit /B 0 exit /B 0
) )
echo. echo.
@ -130,7 +131,7 @@ echo.
exit /B 1 exit /B 1
:copyrt :copyrt
if /I "%JAVA_VERSION%" GEQ "9" ( if /I %JAVA_VERSION% GEQ 9 (
set rtexport=!SBT_HOME!java9-rt-export.jar set rtexport=!SBT_HOME!java9-rt-export.jar
"%_JAVACMD%" %_JAVA_OPTS% %SBT_OPTS% -jar "!rtexport!" --rt-ext-dir > "%TEMP%.\rtext.txt" "%_JAVACMD%" %_JAVA_OPTS% %SBT_OPTS% -jar "!rtexport!" --rt-ext-dir > "%TEMP%.\rtext.txt"
@ -160,7 +161,7 @@ if "%INIT_SBT_VERSION%"=="" (
) )
) )
set PRELOAD_SBT_JAR="%UserProfile%\.sbt\preloaded\org.scala-sbt\sbt\%INIT_SBT_VERSION%\jars\sbt.jar" set PRELOAD_SBT_JAR="%UserProfile%\.sbt\preloaded\org.scala-sbt\sbt\%INIT_SBT_VERSION%\jars\sbt.jar"
if /I "%JAVA_VERSION%" GEQ "1.8" ( if /I %JAVA_VERSION% GEQ 8 (
where robocopy >nul 2>nul where robocopy >nul 2>nul
if %ERRORLEVEL% equ 0 ( if %ERRORLEVEL% equ 0 (
REM echo %PRELOAD_SBT_JAR% REM echo %PRELOAD_SBT_JAR%