|
1 | 1 | @echo off
|
2 | 2 |
|
3 |
| -setlocal |
| 3 | +SETLOCAL |
4 | 4 |
|
5 | 5 | set SCRIPT_DIR=%~dp0
|
6 | 6 |
|
7 |
| -::- Get the Java Version |
8 |
| -set KEY="HKLM\SOFTWARE\JavaSoft\JDK" |
9 |
| -set VALUE=CurrentVersion |
10 |
| -reg query %KEY% /v %VALUE% 2>nul || ( |
11 |
| - echo JRE not installed |
12 |
| - exit /b 1 |
13 |
| -) |
14 |
| -set JRE_VERSION= |
15 |
| -for /f "tokens=2,*" %%a in ('reg query %KEY% /v %VALUE% ^| findstr %VALUE%') do ( |
16 |
| - set JRE_VERSION=%%b |
| 7 | +set BASEKEY=HKLM\SOFTWARE\JavaSoft\JDK |
| 8 | +set BASEKEYLEGACY="HKLM\SOFTWARE\JavaSoft\Java Development Kit" |
| 9 | + |
| 10 | +if "%~1" == "" ( |
| 11 | + set SELECTED_VERSION=newer |
| 12 | +) else ( |
| 13 | + set SELECTED_VERSION=%~1 |
17 | 14 | )
|
18 | 15 |
|
19 |
| -echo JRE VERSION: %JRE_VERSION% |
| 16 | +if "%SELECTED_VERSION%" == "newer" ( |
| 17 | + :: get the java version (newer) |
| 18 | + reg query "%BASEKEY%" /v CurrentVersion >nul || ( |
| 19 | + echo JRE not installed |
| 20 | + exit /b 1 |
| 21 | + ) |
| 22 | + |
| 23 | + for /f "tokens=2,*" %%a in ('reg query %BASEKEY% /v CurrentVersion ^| findstr CurrentVersion') do ( |
| 24 | + set JDKKEY="HKLM\SOFTWARE\JavaSoft\JDK\%%b" |
| 25 | + ) |
| 26 | +) else ( |
| 27 | + :: get the registry key for specified jdk major version, jdk <= 1.8 |
| 28 | + for /f "tokens=*" %%a in ('reg query %BASEKEYLEGACY% /k /f * ^| findstr /r "HKEY_LOCAL_MACHINE.*\\%SELECTED_VERSION%\..*"') do ( |
| 29 | + set JDKKEY="%%a" |
| 30 | + ) |
| 31 | + for /f "tokens=*" %%a in ('reg query %BASEKEYLEGACY% /k /f * ^| findstr /r /c:"HKEY_LOCAL_MACHINE.*\\%SELECTED_VERSION%"') do ( |
| 32 | + set JDKKEY="%%a" |
| 33 | + ) |
| 34 | + |
| 35 | + :: get the registry key for specified jdk major version, > 9 |
| 36 | + for /f "tokens=*" %%a in ('reg query %BASEKEY% /k /f * ^| findstr /r "HKEY_LOCAL_MACHINE.*\\%SELECTED_VERSION%$"') do ( |
| 37 | + set JDKKEY="%%a" |
| 38 | + ) |
| 39 | + |
| 40 | + for /f "tokens=*" %%a in ('reg query %BASEKEY% /k /f * ^| findstr /r "HKEY_LOCAL_MACHINE.*\\%SELECTED_VERSION%\..*"') do ( |
| 41 | + set JDKKEY="%%a" |
| 42 | + ) |
| 43 | +) |
20 | 44 |
|
21 |
| -::- Get the JavaHome |
22 |
| -set KEY="HKLM\SOFTWARE\JavaSoft\JDK\%JRE_VERSION%" |
23 |
| -set VALUE=JavaHome |
24 |
| -reg query %KEY% /v %VALUE% 2>nul || ( |
| 45 | +:: get the java home |
| 46 | +reg query %JDKKEY% /v JavaHome >nul || ( |
25 | 47 | echo JavaHome not installed
|
26 | 48 | exit /b 1
|
27 | 49 | )
|
28 | 50 |
|
29 | 51 | set JAVAHOME=
|
30 |
| -for /f "tokens=2,*" %%a in ('reg query %KEY% /v %VALUE% ^| findstr %VALUE%') do ( |
| 52 | +for /f "tokens=2,*" %%a in ('reg query %JDKKEY% /v JavaHome ^| findstr JavaHome') do ( |
31 | 53 | set JAVAHOME=%%b
|
32 | 54 | )
|
33 | 55 |
|
34 |
| - |
35 |
| - |
36 |
| - |
37 |
| - |
| 56 | +:: clean destination directory |
38 | 57 | echo DELETING DIRECTORY "%SCRIPT_DIR%\..\out\jre-image"
|
39 | 58 | rd /s "%SCRIPT_DIR%\..\out\jre-image"
|
40 | 59 | echo JavaHome: %JAVAHOME%
|
41 |
| -"%JAVAHOME%\bin\jlink" --compress=2 --output "%SCRIPT_DIR%\..\out\jre-image" --module-path "%JAVAHOME%\jmods" --add-modules javafx.base,javafx.fxml,javafx.graphics,javafx.controls,java.prefs,java.base,jdk.zipfs |
42 |
| -endlocal |
43 | 60 |
|
| 61 | +:: build runtime |
| 62 | +"%JAVAHOME%\bin\jlink" --compress=2 --output "%SCRIPT_DIR%\..\out\jre-image" --module-path "%JAVAHOME%\jmods" --add-modules javafx.base,javafx.fxml,javafx.graphics,javafx.controls,java.prefs,java.base,jdk.zipfs |
| 63 | +ENDLOCAL |
44 | 64 |
|
45 | 65 | rem jdeps --print-module-deps tqrespec.jar
|
46 | 66 |
|
|
0 commit comments