Skip to content

Commit e91e311

Browse files
committed
Add support to create dist with specific jdk version
1 parent d3abd66 commit e91e311

File tree

2 files changed

+46
-25
lines changed

2 files changed

+46
-25
lines changed

Diff for: dist/create_dist.cmd

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
setlocal
44

55
set SCRIPT_DIR=%~dp0
6+
set JDKVERSION=9
67

7-
echo ------ CREATING CUSTOM JRE
8-
call "%SCRIPT_DIR%\jlink.cmd"
8+
echo ------ CREATING CUSTOM JRE, USING JDK %JDKVERSION%
9+
call "%SCRIPT_DIR%\jlink.cmd" %JDKVERSION%
910

1011
echo ------ DELETING DIRECTORY "%SCRIPT_DIR%\..\out\dist"
1112
rd /s "%SCRIPT_DIR%\..\out\dist"

Diff for: dist/jlink.cmd

+43-23
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,66 @@
11
@echo off
22

3-
setlocal
3+
SETLOCAL
44

55
set SCRIPT_DIR=%~dp0
66

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
1714
)
1815

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+
)
2044

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 || (
2547
echo JavaHome not installed
2648
exit /b 1
2749
)
2850

2951
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 (
3153
set JAVAHOME=%%b
3254
)
3355

34-
35-
36-
37-
56+
:: clean destination directory
3857
echo DELETING DIRECTORY "%SCRIPT_DIR%\..\out\jre-image"
3958
rd /s "%SCRIPT_DIR%\..\out\jre-image"
4059
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
4360

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
4464

4565
rem jdeps --print-module-deps tqrespec.jar
4666

0 commit comments

Comments
 (0)