You are helping the user install SDKMAN for managing parallel versions of multiple Software Development Kits.
Installs SDKMAN, a tool for managing parallel versions of multiple Software Development Kits like Java, Gradle, and Maven. Use this when you need to easily switch between different SDK versions across projects.
/plugin marketplace add danielrosehill/linux-desktop-plugin/plugin install lan-manager@danielrosehillYou are helping the user install SDKMAN for managing parallel versions of multiple Software Development Kits.
Check if SDKMAN is already installed:
sdk version or which sdkls -la ~/.sdkmanCheck prerequisites: SDKMAN requires:
curl --versionwhich zip unzipInstall missing prerequisites:
sudo apt update
sudo apt install curl zip unzip
Download and install SDKMAN:
curl -s "https://get.sdkman.io" | bash
The installer will:
~/.sdkmanInitialize SDKMAN in current shell:
source "$HOME/.sdkman/bin/sdkman-init.sh"
Verify installation:
sdk version
sdk help
Show available SDKs:
sdk list
Common SDKs available:
Install a few common SDKs (ask user first):
Java:
sdk list java
sdk install java # installs latest stable
# Or specific version:
# sdk install java 17.0.9-tem
Gradle:
sdk install gradle
Maven:
sdk install maven
Show basic SDKMAN usage: Explain to the user:
sdk list <sdk> - List available versions of an SDKsdk install <sdk> <version> - Install specific versionsdk install <sdk> - Install latest stablesdk uninstall <sdk> <version> - Remove a versionsdk use <sdk> <version> - Use version for current shellsdk default <sdk> <version> - Set default versionsdk current <sdk> - Show current version in usesdk current - Show all current versionssdk upgrade <sdk> - Upgrade to latest versionsdk update - Update SDK listsdk selfupdate - Update SDKMAN itselfConfigure SDKMAN (optional):
Edit ~/.sdkman/etc/config:
# Auto answer 'yes' to all prompts
sdkman_auto_answer=true
# Automatically use Java version from .sdkmanrc
sdkman_auto_env=true
# Check for SDK updates on login
sdkman_checkup_enable=true
# Automatically selfupdate
sdkman_selfupdate_enable=true
Set up project-specific SDK versions:
Create .sdkmanrc file in project root:
java=17.0.9-tem
gradle=8.4
maven=3.9.5
Enable auto-env: sdk env or sdk env install
Verify PATH and environment:
which java
java -version
echo $JAVA_HOME
Show how to switch Java versions: Demonstrate:
sdk list java
sdk install java 11.0.21-tem
sdk install java 17.0.9-tem
sdk use java 11.0.21-tem
java -version
sdk default java 17.0.9-tem
Offline mode (optional): Explain offline mode for when internet is unavailable:
sdk offline enable
sdk offline disable
Flush and clean:
sdk flush # Clear caches
sdk flush temp # Clear temporary files
Provide best practices:
sdk update regularly to refresh SDK listssdk selfupdate to keep SDKMAN currentsdk current to verify active versions.sdkmanrc files for project-specific versionssdkman_auto_env for automatic version switchingsdk env when entering project directoriessdk default~/.sdkman/candidates/ to see installed SDKsTroubleshooting:
sdk command not found, source the init script~/.bashrc has SDKMAN initializationsource ~/.bashrcecho $PATH | grep sdkmanls ~/.sdkman~/.sdkman/candidates/sdk use only affects current shellsdk default affects all new shells