Files
crawlab/docker/base-image/install/java/java.sh
2024-11-23 10:51:46 +08:00

49 lines
1.2 KiB
Bash

#!/bin/bash
version="11.0.12-open"
# Install SDKMAN!
curl -s "https://get.sdkman.io" | bash
# Create persistent environment config for SDKMAN
cat > /etc/profile.d/sdkman.sh << 'EOF'
# SDKMAN configuration
export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
# Java environment variables
export JAVA_HOME="$SDKMAN_DIR/candidates/java/current"
export PATH="$JAVA_HOME/bin:$PATH"
EOF
# Make the file executable
chmod +x /etc/profile.d/sdkman.sh
# Source it immediately for the rest of the installation
source /etc/profile.d/sdkman.sh
# Install Java 11 (OpenJDK)
sdk install java ${version}
# Set Java 11 as default
sdk default java ${version}
# Create symbolic links
ln -sf "$(sdkman which java)" /usr/local/bin/java
ln -sf "$(sdkman which javac)" /usr/local/bin/javac
# Verify installations
java_version=$(java -version)
if [[ $java_version =~ "${version}" ]]; then
:
else
echo "ERROR: java version does not match. expect \"${version}\", but actual is \"${java_version}\""
exit 1
fi
javac_version=$(javac -version)
if [[ $javac_version =~ "${version}" ]]; then
:
else
echo "ERROR: javac version does not match. expect \"${version}\", but actual is \"${javac_version}\""
exit 1
fi