1+ #! /bin/bash
2+ # #===----------------------------------------------------------------------===##
3+ # #
4+ # # This source file is part of the Swift.org open source project
5+ # #
6+ # # Copyright (c) 2024 Apple Inc. and the Swift.org project authors
7+ # # Licensed under Apache License v2.0
8+ # #
9+ # # See LICENSE.txt for license information
10+ # # See CONTRIBUTORS.txt for the list of Swift.org project authors
11+ # #
12+ # # SPDX-License-Identifier: Apache-2.0
13+ # #
14+ # #===----------------------------------------------------------------------===##
15+ set -euo pipefail
16+
17+ # Supported JDKs: Corretto or OpenJDK
18+ declare -r JDK_VENDOR=Corretto
19+ echo " Installing $JDK_VENDOR JDK..."
20+
21+ apt-get update && apt-get install -y wget
22+
23+ echo " Download JDK for: $( uname -m) "
24+
25+ if [ " $JDK_VENDOR " = ' OpenJDK' ]; then
26+ if [ " $( uname -m) " = ' aarch64' ]; then
27+ declare -r JDK_URL=" https://download.java.net/java/GA/jdk23/3c5b90190c68498b986a97f276efd28a/37/GPL/openjdk-23_linux-aarch64_bin.tar.gz"
28+ declare -r EXPECT_JDK_SHA=" 076dcf7078cdf941951587bf92733abacf489a6570f1df97ee35945ffebec5b7"
29+ else
30+ declare -r JDK_URL=" https://download.java.net/java/GA/jdk23/3c5b90190c68498b986a97f276efd28a/37/GPL/$JDK_NAME "
31+ declare -r EXPECT_JDK_SHA=" 08fea92724127c6fa0f2e5ea0b07ff4951ccb1e2f22db3c21eebbd7347152a67"
32+ fi
33+
34+ wget -q -O jdk.tar.gz " $JDK_URL "
35+ declare -r JDK_SHA=" $( sha256sum jdk.tar.gz | cut -d ' ' -f 1) "
36+ if [ " $JDK_SHA " != " $EXPECT_JDK_SHA " ]; then
37+ echo " Downloaded JDK SHA does not match expected!"
38+ echo " Expected: $EXPECT_JDK_SHA "
39+ echo " Was: $JDK_SHA "
40+ exit 1;
41+ else
42+ echo " JDK SHA is correct." ;
43+ fi
44+ elif [ " $JDK_VENDOR " = ' Corretto' ]; then
45+ if [ " $( uname -m) " = ' aarch64' ]; then
46+ declare -r JDK_URL=" https://corretto.aws/downloads/latest/amazon-corretto-22-aarch64-linux-jdk.tar.gz"
47+ declare -r EXPECT_JDK_MD5=" 1ebe5f5229bb18bc784a1e0f54d3fe39"
48+ else
49+ declare -r JDK_URL=" https://corretto.aws/downloads/latest/amazon-corretto-22-x64-linux-jdk.tar.gz"
50+ declare -r EXPECT_JDK_MD5=" 5bd7fe30eb063699a3b4db7a00455841"
51+ fi
52+
53+ wget -q -O jdk.tar.gz " $JDK_URL "
54+ declare -r JDK_MD5=" $( md5sum jdk.tar.gz | cut -d ' ' -f 1) "
55+ if [ " $JDK_MD5 " != " $EXPECT_JDK_MD5 " ]; then
56+ echo " Downloaded JDK MD5 does not match expected!"
57+ echo " Expected: $EXPECT_JDK_MD5 "
58+ echo " Was: $JDK_MD5 "
59+ exit 1;
60+ else
61+ echo " JDK MD5 is correct." ;
62+ fi
63+ fi
64+
65+ # Extract and verify the JDK installation
66+
67+ mkdir -p /usr/lib/jvm/ && cd /usr/lib/jvm/
68+ tar xzvf /jdk.tar.gz
69+ ls -lah
70+ mv " $( ls | head -n1) " default-jdk
71+ rm /jdk.tar.gz
72+
73+ echo " JAVA_HOME = /usr/lib/jvm/default-jdk"
74+ /usr/lib/jvm/default-jdk/bin/java -version
0 commit comments