diff --git a/11/almalinux/almalinux8/hotspot/Dockerfile b/11/almalinux/almalinux8/hotspot/Dockerfile index e0c51c1fa0..ac6ed82fad 100644 --- a/11/almalinux/almalinux8/hotspot/Dockerfile +++ b/11/almalinux/almalinux8/hotspot/Dockerfile @@ -1,6 +1,20 @@ +FROM almalinux:8.9 as jre-build + ARG JAVA_VERSION=11.0.22_7 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-jammy as jre-build +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh + +RUN dnf --setopt=install_weak_deps=0 --setopt=tsflags=nodocs install -y \ + ca-certificates \ + curl \ + jq \ + && dnf clean all \ + && /usr/bin/jdk-download.sh + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility # while still saving space (approx 200mb from the full distribution) @@ -13,7 +27,7 @@ RUN jlink \ --compress=2 \ --output /javaruntime -FROM almalinux:8.9 +FROM almalinux:8.9 AS controller ENV LANG C.UTF-8 diff --git a/11/alpine/hotspot/Dockerfile b/11/alpine/hotspot/Dockerfile index 78b8d88029..fe110fd5db 100644 --- a/11/alpine/hotspot/Dockerfile +++ b/11/alpine/hotspot/Dockerfile @@ -1,6 +1,21 @@ ARG ALPINE_TAG=3.19.1 + +FROM alpine:"${ALPINE_TAG}" AS jre-build + ARG JAVA_VERSION=11.0.22_7 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-alpine AS jre-build + +SHELL ["/bin/ash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh +RUN apk add --no-cache \ + ca-certificates \ + curl \ + jq \ + && rm -fr /var/cache/apk/* \ + && /usr/bin/jdk-download.sh alpine + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility @@ -14,7 +29,7 @@ RUN jlink \ --compress=2 \ --output /javaruntime -FROM alpine:"${ALPINE_TAG}" AS build +FROM alpine:"${ALPINE_TAG}" AS controller RUN apk add --no-cache \ bash \ diff --git a/11/debian/bookworm-slim/hotspot/Dockerfile b/11/debian/bookworm-slim/hotspot/Dockerfile index fa195f4080..807ba98915 100644 --- a/11/debian/bookworm-slim/hotspot/Dockerfile +++ b/11/debian/bookworm-slim/hotspot/Dockerfile @@ -1,6 +1,23 @@ ARG BOOKWORM_TAG=20240408 + +FROM debian:bookworm-"${BOOKWORM_TAG}"-slim as jre-build + ARG JAVA_VERSION=11.0.22_7 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-jammy as jre-build + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh + +RUN apt-get update \ + && apt-get install --no-install-recommends -y \ + ca-certificates \ + curl \ + jq \ + && rm -rf /var/lib/apt/lists/* \ + && /usr/bin/jdk-download.sh + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility @@ -14,7 +31,7 @@ RUN jlink \ --compress=2 \ --output /javaruntime -FROM debian:bookworm-"${BOOKWORM_TAG}"-slim +FROM debian:bookworm-"${BOOKWORM_TAG}"-slim AS controller RUN apt-get update \ && apt-get install -y --no-install-recommends \ diff --git a/11/debian/bookworm/hotspot/Dockerfile b/11/debian/bookworm/hotspot/Dockerfile index 010e68c002..e09fecd366 100644 --- a/11/debian/bookworm/hotspot/Dockerfile +++ b/11/debian/bookworm/hotspot/Dockerfile @@ -1,6 +1,23 @@ ARG BOOKWORM_TAG=20240408 + +FROM debian:bookworm-"${BOOKWORM_TAG}" as jre-build + ARG JAVA_VERSION=11.0.22_7 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-jammy as jre-build + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh + +RUN apt-get update \ + && apt-get install --no-install-recommends -y \ + ca-certificates \ + curl \ + jq \ + && rm -rf /var/lib/apt/lists/* \ + && /usr/bin/jdk-download.sh + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility @@ -14,7 +31,7 @@ RUN jlink \ --compress=2 \ --output /javaruntime -FROM debian:bookworm-"${BOOKWORM_TAG}" +FROM debian:bookworm-"${BOOKWORM_TAG}" AS controller RUN apt-get update \ && apt-get install -y --no-install-recommends \ diff --git a/11/rhel/ubi8/hotspot/Dockerfile b/11/rhel/ubi8/hotspot/Dockerfile index 26c809c6eb..2100353ab3 100644 --- a/11/rhel/ubi8/hotspot/Dockerfile +++ b/11/rhel/ubi8/hotspot/Dockerfile @@ -1,5 +1,20 @@ +FROM registry.access.redhat.com/ubi8/ubi:8.9-1160 as jre-build + ARG JAVA_VERSION=11.0.22_7 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-jammy as jre-build + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh + +RUN dnf install --disableplugin=subscription-manager --setopt=install_weak_deps=0 --setopt=tsflags=nodocs -y \ + ca-certificates \ + curl \ + jq \ + && dnf clean --disableplugin=subscription-manager all \ + && /usr/bin/jdk-download.sh + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility @@ -13,7 +28,7 @@ RUN jlink \ --compress=2 \ --output /javaruntime -FROM registry.access.redhat.com/ubi8/ubi:8.9-1160 +FROM registry.access.redhat.com/ubi8/ubi:8.9-1160 AS controller ENV LANG C.UTF-8 diff --git a/17/alpine/hotspot/Dockerfile b/17/alpine/hotspot/Dockerfile index 2210b1c0e1..9533cb46b2 100644 --- a/17/alpine/hotspot/Dockerfile +++ b/17/alpine/hotspot/Dockerfile @@ -1,6 +1,22 @@ ARG ALPINE_TAG=3.19.1 + +FROM alpine:"${ALPINE_TAG}" AS jre-build + ARG JAVA_VERSION=17.0.10_7 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-alpine AS jre-build + +SHELL ["/bin/ash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh + +RUN apk add --no-cache \ + ca-certificates \ + jq \ + curl \ + && rm -fr /var/cache/apk/* \ + && /usr/bin/jdk-download.sh alpine + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility @@ -14,7 +30,7 @@ RUN jlink \ --compress=2 \ --output /javaruntime -FROM alpine:"${ALPINE_TAG}" AS build +FROM alpine:"${ALPINE_TAG}" AS controller RUN apk add --no-cache \ bash \ diff --git a/17/debian/bookworm-slim/hotspot/Dockerfile b/17/debian/bookworm-slim/hotspot/Dockerfile index 8c36b96a1a..9ab9e0fa70 100644 --- a/17/debian/bookworm-slim/hotspot/Dockerfile +++ b/17/debian/bookworm-slim/hotspot/Dockerfile @@ -1,6 +1,23 @@ ARG BOOKWORM_TAG=20240408 + +FROM debian:bookworm-"${BOOKWORM_TAG}"-slim as jre-build + ARG JAVA_VERSION=17.0.10_7 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-jammy as jre-build + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh + +RUN apt-get update \ + && apt-get install --no-install-recommends -y \ + ca-certificates \ + curl \ + jq \ + && rm -rf /var/lib/apt/lists/* \ + && /usr/bin/jdk-download.sh + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility @@ -14,7 +31,7 @@ RUN jlink \ --compress=2 \ --output /javaruntime -FROM debian:bookworm-"${BOOKWORM_TAG}"-slim +FROM debian:bookworm-"${BOOKWORM_TAG}"-slim AS controller RUN apt-get update \ && apt-get install -y --no-install-recommends \ diff --git a/17/debian/bookworm/hotspot/Dockerfile b/17/debian/bookworm/hotspot/Dockerfile index 0cad9fa03a..1f2126a081 100644 --- a/17/debian/bookworm/hotspot/Dockerfile +++ b/17/debian/bookworm/hotspot/Dockerfile @@ -1,6 +1,23 @@ ARG BOOKWORM_TAG=20240408 + +FROM debian:bookworm-"${BOOKWORM_TAG}" as jre-build + ARG JAVA_VERSION=17.0.10_7 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-jammy as jre-build + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh + +RUN apt-get update \ + && apt-get install --no-install-recommends -y \ + ca-certificates \ + curl \ + jq \ + && rm -rf /var/lib/apt/lists/* \ + && /usr/bin/jdk-download.sh + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility @@ -14,7 +31,7 @@ RUN jlink \ --compress=2 \ --output /javaruntime -FROM debian:bookworm-"${BOOKWORM_TAG}" +FROM debian:bookworm-"${BOOKWORM_TAG}" AS controller RUN apt-get update \ && apt-get install -y --no-install-recommends \ diff --git a/17/rhel/ubi9/hotspot/Dockerfile b/17/rhel/ubi9/hotspot/Dockerfile index 16c13b67bd..a46738129e 100644 --- a/17/rhel/ubi9/hotspot/Dockerfile +++ b/17/rhel/ubi9/hotspot/Dockerfile @@ -1,5 +1,20 @@ +FROM registry.access.redhat.com/ubi9/ubi:9.3-1610 as jre-build + ARG JAVA_VERSION=17.0.10_7 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-ubi9-minimal as jre-build + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh + +RUN dnf install --disableplugin=subscription-manager --setopt=install_weak_deps=0 --setopt=tsflags=nodocs --allowerasing -y \ + ca-certificates \ + curl \ + jq \ + && dnf clean --disableplugin=subscription-manager all \ + && /usr/bin/jdk-download.sh + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility @@ -13,7 +28,7 @@ RUN jlink \ --compress=2 \ --output /javaruntime -FROM registry.access.redhat.com/ubi9/ubi:9.3-1610 +FROM registry.access.redhat.com/ubi9/ubi:9.3-1610 AS controller ENV LANG C.UTF-8 diff --git a/21/alpine/hotspot/Dockerfile b/21/alpine/hotspot/Dockerfile index 18b8515b3d..2e8725f113 100644 --- a/21/alpine/hotspot/Dockerfile +++ b/21/alpine/hotspot/Dockerfile @@ -1,6 +1,21 @@ ARG ALPINE_TAG=3.19.1 + +FROM alpine:"${ALPINE_TAG}" AS jre-build + ARG JAVA_VERSION=21.0.2_13 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-alpine AS jre-build + +SHELL ["/bin/ash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh +RUN apk add --no-cache \ + ca-certificates \ + curl \ + jq \ + && rm -fr /var/cache/apk/* \ + && /usr/bin/jdk-download.sh alpine + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility @@ -14,7 +29,7 @@ RUN jlink \ --compress zip-6 \ --output /javaruntime -FROM alpine:"${ALPINE_TAG}" AS build +FROM alpine:"${ALPINE_TAG}" AS controller RUN apk add --no-cache \ bash \ diff --git a/21/debian/bookworm-slim/hotspot/Dockerfile b/21/debian/bookworm-slim/hotspot/Dockerfile index 2c4032240c..b0c371efa0 100644 --- a/21/debian/bookworm-slim/hotspot/Dockerfile +++ b/21/debian/bookworm-slim/hotspot/Dockerfile @@ -1,6 +1,23 @@ ARG BOOKWORM_TAG=20240408 + +FROM debian:bookworm-"${BOOKWORM_TAG}"-slim as jre-build + ARG JAVA_VERSION=21.0.2_13 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-jammy as jre-build + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh + +RUN apt-get update \ + && apt-get install --no-install-recommends -y \ + ca-certificates \ + curl \ + jq \ + && rm -rf /var/lib/apt/lists/* \ + && /usr/bin/jdk-download.sh + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility @@ -14,7 +31,7 @@ RUN jlink \ --compress zip-6 \ --output /javaruntime -FROM debian:bookworm-"${BOOKWORM_TAG}"-slim +FROM debian:bookworm-"${BOOKWORM_TAG}"-slim AS controller RUN apt-get update \ && apt-get install -y --no-install-recommends \ diff --git a/21/debian/bookworm/hotspot/Dockerfile b/21/debian/bookworm/hotspot/Dockerfile index 7cef3f0050..584ca46f8b 100644 --- a/21/debian/bookworm/hotspot/Dockerfile +++ b/21/debian/bookworm/hotspot/Dockerfile @@ -1,6 +1,23 @@ ARG BOOKWORM_TAG=20240408 + +FROM debian:bookworm-"${BOOKWORM_TAG}" as jre-build + ARG JAVA_VERSION=21.0.2_13 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-jammy as jre-build + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh + +RUN apt-get update \ + && apt-get install --no-install-recommends -y \ + ca-certificates \ + curl \ + jq \ + && rm -rf /var/lib/apt/lists/* \ + && /usr/bin/jdk-download.sh + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility @@ -14,7 +31,7 @@ RUN jlink \ --compress zip-6 \ --output /javaruntime -FROM debian:bookworm-"${BOOKWORM_TAG}" +FROM debian:bookworm-"${BOOKWORM_TAG}" AS controller RUN apt-get update \ && apt-get install -y --no-install-recommends \ diff --git a/21/rhel/ubi9/hotspot/Dockerfile b/21/rhel/ubi9/hotspot/Dockerfile index 9e19038f3a..cf5ccc26fb 100644 --- a/21/rhel/ubi9/hotspot/Dockerfile +++ b/21/rhel/ubi9/hotspot/Dockerfile @@ -1,5 +1,20 @@ +FROM registry.access.redhat.com/ubi9/ubi:9.3-1610 as jre-build + ARG JAVA_VERSION=21.0.2_13 -FROM eclipse-temurin:"${JAVA_VERSION}"-jdk-ubi9-minimal as jre-build + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +COPY jdk-download-url.sh /usr/bin/jdk-download-url.sh +COPY jdk-download.sh /usr/bin/jdk-download.sh + +RUN dnf install --disableplugin=subscription-manager --setopt=install_weak_deps=0 --setopt=tsflags=nodocs --allowerasing -y \ + ca-certificates \ + curl \ + jq \ + && dnf clean --disableplugin=subscription-manager all \ + && /usr/bin/jdk-download.sh + +ENV PATH=/opt/jdk-${JAVA_VERSION}/bin:$PATH # Generate smaller java runtime without unneeded files # for now we include the full module path to maintain compatibility @@ -13,7 +28,7 @@ RUN jlink \ --compress zip-6 \ --output /javaruntime -FROM registry.access.redhat.com/ubi9/ubi:9.3-1552 +FROM registry.access.redhat.com/ubi9/ubi:9.3-1610 as controller ENV LANG C.UTF-8 diff --git a/jdk-download-url.sh b/jdk-download-url.sh new file mode 100755 index 0000000000..34decb4467 --- /dev/null +++ b/jdk-download-url.sh @@ -0,0 +1,75 @@ +#!/bin/sh + +# Check if at least one argument was passed to the script +# If one argument was passed and JAVA_VERSION is set, assign the argument to OS +# If two arguments were passed, assign them to JAVA_VERSION and OS respectively +# If not, check if JAVA_VERSION and OS are already set. If they're not set, exit the script with an error message +if [ $# -eq 1 ] && [ -n "$JAVA_VERSION" ]; then + OS=$1 +elif [ $# -eq 2 ]; then + JAVA_VERSION=$1 + OS=$2 +elif [ -z "$JAVA_VERSION" ] && [ -z "$OS" ]; then + echo "Error: No Java version and OS specified. Please set the JAVA_VERSION and OS environment variables or pass them as arguments." >&2 + exit 1 +elif [ -z "$JAVA_VERSION" ]; then + echo "Error: No Java version specified. Please set the JAVA_VERSION environment variable or pass it as an argument." >&2 + exit 1 +elif [ -z "$OS" ]; then + OS=$1 + if [ -z "$OS" ]; then + echo "Error: No OS specified. Please set the OS environment variable or pass it as an argument." >&2 + exit 1 + fi +fi + +# Check if jq and curl are installed +# If they are not installed, exit the script with an error message +if ! command -v jq >/dev/null 2>&1 || ! command -v curl >/dev/null 2>&1; then + echo "jq and curl are required but not installed. Exiting with status 1." >&2 + exit 1 +fi + +# Replace underscores with plus signs in JAVA_VERSION +ARCHIVE_DIRECTORY=$(echo "$JAVA_VERSION" | tr '_' '+') + +# URL encode ARCHIVE_DIRECTORY +ENCODED_ARCHIVE_DIRECTORY=$(echo "$ARCHIVE_DIRECTORY" | xargs -I {} printf %s {} | jq "@uri" -jRr) + +# Convert the architecture name to the format used by the Adoptium API +CONVERTED_ARCH=$(uname -m | sed -e 's/x86_64/x64/' -e 's/armv7l/arm/') + +# Determine the OS type for the URL +OS_TYPE="linux" +if [ "$OS" = "alpine" ]; then + OS_TYPE="alpine-linux" +fi + +# Fetch the download URL from the Adoptium API +URL="https://api.adoptium.net/v3/binary/version/jdk-${ENCODED_ARCHIVE_DIRECTORY}/${OS_TYPE}/${CONVERTED_ARCH}/jdk/hotspot/normal/eclipse?project=jdk" + +if ! RESPONSE=$(curl -fsI "$URL"); then + echo "Error: Failed to fetch the URL. Exiting with status 1." >&2 + echo "Response: $RESPONSE" >&2 + exit 1 +fi + +# Extract the redirect URL from the HTTP response +REDIRECTED_URL=$(echo "$RESPONSE" | grep Location | awk '{print $2}' | tr -d '\r') + +# If no redirect URL was found, exit the script with an error message +if [ -z "$REDIRECTED_URL" ]; then + echo "Error: No redirect URL found. Exiting with status 1." >&2 + echo "Response: $RESPONSE" >&2 + exit 1 +fi + +# Use curl to check if the URL is reachable +# If the URL is reachable, print the URL +# If the URL is not reachable, print an error message and exit the script with status 1 +if ! curl -v -fs "$REDIRECTED_URL" >/dev/null 2>&1; then + echo "${REDIRECTED_URL}" is not reachable. >&2 + exit 1 +else + echo "$REDIRECTED_URL" +fi diff --git a/jdk-download.sh b/jdk-download.sh new file mode 100755 index 0000000000..51324922c4 --- /dev/null +++ b/jdk-download.sh @@ -0,0 +1,51 @@ +#!/bin/sh +set -x +# Check if curl and tar are installed +if ! command -v curl >/dev/null 2>&1 || ! command -v tar >/dev/null 2>&1 ; then + echo "curl and tar are required but not installed. Exiting with status 1." >&2 + exit 1 +fi + +# Set the OS to "standard" by default +OS="standard" + +# If a second argument is provided, use it as the OS +if [ $# -eq 1 ]; then + OS=$1 +fi + +# Call jdk-download-url.sh with JAVA_VERSION and OS as arguments +# The two scripts should be in the same directory. +# That's why we're trying to find the directory of the current script and use it to call the other script. +SCRIPT_DIR=$(cd "$(dirname "$0")" || exit; pwd) +if ! DOWNLOAD_URL=$("${SCRIPT_DIR}"/jdk-download-url.sh "${JAVA_VERSION}" "${OS}"); then + echo "Error: Failed to fetch the URL. Exiting with status 1." >&2 + exit 1 +fi + +# Use curl to download the JDK archive from the URL +if ! curl --silent --location --output /tmp/jdk.tar.gz "${DOWNLOAD_URL}"; then + echo "Error: Failed to download the JDK archive. Exiting with status 1." >&2 + exit 1 +fi + +# Extract the archive to the /opt/ directory +if ! tar -xzf /tmp/jdk.tar.gz -C /opt/; then + echo "Error: Failed to extract the JDK archive. Exiting with status 1." >&2 + exit 1 +fi + +# Get the name of the extracted directory +EXTRACTED_DIR=$(tar -tzf /tmp/jdk.tar.gz | head -n 1 | cut -f1 -d"/") + +# Rename the extracted directory to /opt/jdk-${JAVA_VERSION} +if ! mv "/opt/${EXTRACTED_DIR}" "/opt/jdk-${JAVA_VERSION}"; then + echo "Error: Failed to rename the extracted directory. Exiting with status 1." >&2 + exit 1 +fi + +# Remove the downloaded archive +if ! rm -f /tmp/jdk.tar.gz; then + echo "Error: Failed to remove the downloaded archive. Exiting with status 1." >&2 + exit 1 +fi