14
14
# #===----------------------------------------------------------------------===##
15
15
set -euo pipefail
16
16
17
+ # We need JDK 24 because that's the supported version with latest FFM
18
+ # However, we also need JDK 23 at most because Gradle does not support 24.
19
+
17
20
# Supported JDKs: Corretto
18
21
if [ " $JDK_VENDOR " = " " ]; then
19
22
declare -r JDK_VENDOR=" Corretto"
20
23
fi
21
- echo " Installing $JDK_VENDOR JDK..."
22
24
23
25
apt-get update && apt-get install -y wget
24
26
25
27
echo " Download JDK for: $( uname -m) "
26
28
27
- if [ " $JDK_VENDOR " = ' Corretto' ]; then
28
- if [ " $( uname -m) " = ' aarch64' ]; then
29
- declare -r JDK_URL=" https://corretto.aws/downloads/latest/amazon-corretto-24-aarch64-linux-jdk.tar.gz"
30
- declare -r EXPECT_JDK_MD5=" 3b543f4e971350b73d0ab6d8174cc030"
31
- else
32
- declare -r JDK_URL=" https://corretto.aws/downloads/latest/amazon-corretto-24-x64-linux-jdk.tar.gz"
33
- declare -r EXPECT_JDK_MD5=" 130885ded3cbfc712fbe9f7dace45a52"
34
- fi
35
-
36
- wget -q -O jdk.tar.gz " $JDK_URL "
37
-
38
- declare JDK_MD5 # on separate lines due to: SC2155 (warning): Declare and assign separately to avoid masking return values.
39
- JDK_MD5=" $( md5sum jdk.tar.gz | cut -d ' ' -f 1) "
40
- if [ " $JDK_MD5 " != " $EXPECT_JDK_MD5 " ]; then
41
- echo " Downloaded JDK MD5 does not match expected!"
42
- echo " Expected: $EXPECT_JDK_MD5 "
43
- echo " Was: $JDK_MD5 "
44
- exit 1;
45
- else
46
- echo " JDK MD5 is correct." ;
47
- fi
48
- else
49
- echo " Unsupported JDK vendor: '$JDK_VENDOR '"
50
- exit 1
51
- fi
29
+ download_and_install_jdk () {
30
+ local jdk_version=" $1 "
31
+ local jdk_url=" "
32
+ local expected_md5=" "
33
+
34
+ echo " Installing $JDK_VENDOR JDK (${jdk_version} )..."
35
+
36
+ if [ " $JDK_VENDOR " = ' Corretto' ]; then
37
+ if [ " $( uname -m) " = ' aarch64' ]; then
38
+ case " $jdk_version " in
39
+ " 21" )
40
+ jdk_url=" https://corretto.aws/downloads/latest/amazon-corretto-21-aarch64-linux-jdk.tar.gz"
41
+ expected_md5=" 87e458029cf9976945dfa3a22af3f850"
42
+ ;;
43
+ " 24" )
44
+ jdk_url=" https://corretto.aws/downloads/latest/amazon-corretto-24-aarch64-linux-jdk.tar.gz"
45
+ expected_md5=" 3b543f4e971350b73d0ab6d8174cc030"
46
+ ;;
47
+ * )
48
+ echo " Unsupported JDK version: '$jdk_version '"
49
+ exit 1
50
+ ;;
51
+ esac
52
+ else
53
+ case " $jdk_version " in
54
+ " 21" )
55
+ jdk_url=" https://corretto.aws/downloads/latest/amazon-corretto-21-x64-linux-jdk.tar.gz"
56
+ expected_md5=" 84368821f590bd58708d9e350534c7f8"
57
+ ;;
58
+ " 24" )
59
+ jdk_url=" https://corretto.aws/downloads/latest/amazon-corretto-24-x64-linux-jdk.tar.gz"
60
+ expected_md5=" 130885ded3cbfc712fbe9f7dace45a52"
61
+ ;;
62
+ * )
63
+ echo " Unsupported JDK version: '$jdk_version '"
64
+ exit 1
65
+ ;;
66
+ esac
67
+ fi
68
+ else
69
+ echo " Unsupported JDK vendor: '$JDK_VENDOR '"
70
+ exit 1
71
+ fi
72
+
73
+ # Download JDK
74
+ local jdk_filename=" jdk_${jdk_version} .tar.gz"
75
+ wget -q -O " $jdk_filename " " $jdk_url "
76
+
77
+ # Verify MD5
78
+ local jdk_md5
79
+ jdk_md5=" $( md5sum " $jdk_filename " | cut -d ' ' -f 1) "
80
+ if [ " $jdk_md5 " != " $expected_md5 " ]; then
81
+ echo " Downloaded JDK $jdk_version MD5 does not match expected!"
82
+ echo " Expected: $expected_md5 "
83
+ echo " Was: $jdk_md5 "
84
+ exit 1
85
+ else
86
+ echo " JDK $jdk_version MD5 is correct."
87
+ fi
88
+
89
+ # Extract and install JDK
90
+ mkdir -p " /usr/lib/jvm/jdk-${jdk_version} "
91
+ mv " $jdk_filename " " /usr/lib/jvm/jdk-${jdk_version} /"
92
+ cd " /usr/lib/jvm/jdk-${jdk_version} /" || exit 1
93
+ tar xzf " $jdk_filename " && rm " $jdk_filename "
94
+
95
+ # Move extracted directory to a standard name
96
+ local extracted_dir
97
+ extracted_dir=" $( find . -maxdepth 1 -type d -name " *jdk*" | head -n1) "
98
+ if [ -n " $extracted_dir " ]; then
99
+ mv " $extracted_dir " /* .
100
+ rm -rf " $extracted_dir "
101
+ fi
52
102
53
- # Extract and verify the JDK installation
103
+ echo " JDK $jdk_version installed successfully in /usr/lib/jvm/jdk-${jdk_version} /"
104
+ cd
105
+ }
54
106
55
- mkdir -p /usr/lib/jvm/
56
- mv jdk.tar.gz /usr/lib/jvm/
57
- cd /usr/lib/jvm/
58
- tar xzvf jdk.tar.gz && rm jdk.tar.gz
59
- mv " $( find . -depth -maxdepth 1 -type d | head -n1) " default-jdk
107
+ # Usage: Install both JDK versions
108
+ download_and_install_jdk " 21"
109
+ download_and_install_jdk " 24"
60
110
111
+ ln -sf /usr/lib/jvm/jdk-21 /usr/lib/jvm/default-jdk
61
112
echo " JAVA_HOME = /usr/lib/jvm/default-jdk"
62
113
/usr/lib/jvm/default-jdk/bin/java -version
0 commit comments