#!/bin/bash set -euo pipefail echo "============================================" echo "SDKMAN (Java Development) Installation Script" echo "============================================" echo "" echo "This script will run the following commands with sudo:" echo " - apt-get update" echo " - apt-get install -y zip unzip curl" echo "" read -p "Continue with installation? (y/N) " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo "Installation cancelled." exit 0 fi echo "" echo "Starting installation (commands will be shown as they run)..." echo "" # Enable command tracing set -x # Install prerequisites sudo apt-get update sudo apt-get install -y zip unzip curl set +x # Check if SDKMAN is already installed if [ -d "$HOME/.sdkman" ]; then echo "" echo "============================================" echo "SDKMAN is already installed at ~/.sdkman" echo "To update SDKMAN, run: sdk selfupdate" echo "============================================" exit 0 fi # Install SDKMAN echo "Installing SDKMAN..." set -x if ! curl -s "https://get.sdkman.io" | bash; then set +x echo "Error: SDKMAN installation failed" >&2 exit 1 fi set +x # Source SDKMAN to make it available in current session export SDKMAN_DIR="$HOME/.sdkman" [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh" echo "" echo "============================================" # Verify installation if [ -d "$HOME/.sdkman" ] && [ -f "$HOME/.sdkman/bin/sdkman-init.sh" ]; then echo "SDKMAN installed successfully!" echo "" echo "To start using SDKMAN, either:" echo " 1. Restart your shell, or" echo " 2. Run: source ~/.bashrc" echo "" echo "Then you can install Java with:" echo " sdk list java # List available Java versions" echo " sdk install java # Install latest Java" echo " sdk install java 21.0.1-tem # Install specific version" echo "" echo "Other useful SDKMAN commands:" echo " sdk install gradle # Install Gradle" echo " sdk install maven # Install Maven" echo " sdk list # List all available SDKs" else echo "Error: SDKMAN installation verification failed" >&2 exit 1 fi echo "============================================"