Skip to content

Instantly share code, notes, and snippets.

@xetys
Created March 2, 2022 09:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xetys/ddf9aed985fd365f12c4ce4e0a2c6f6e to your computer and use it in GitHub Desktop.
Save xetys/ddf9aed985fd365f12c4ce4e0a2c6f6e to your computer and use it in GitHub Desktop.
Java Version Switcher
#!/usr/bin/env bash
declare -A JDKS
JDKS[8]="/usr/lib/jvm/jdk1.8.0_251"
JDKS[11]="/usr/lib/jvm/jdk-11.0.9"
JDKS[14]="/usr/lib/jvm/jdk-14.0.1"
JDKS[16]="/usr/lib/jvm/jdk-16.0.2"
if [ "$#" -ne 1 ]; then
echo "pass one parameter, 8 or 11, for the java version to use"
fi
## deactivate previous
if [ -n "$ZSH_VERSION" ]; then
# assume Zsh
for key value in ${(kv)JDKS}; do
echo "$value"
sudo update-alternatives --remove "java" "${value}/bin/java"
sudo update-alternatives --remove "javac" "${value}/bin/javac"
done
elif [ -n "$BASH_VERSION" ]; then
# assume Bash
for k in "${!JDKS[@]}"; do
echo "${JDKS[$k]}"
sudo update-alternatives --remove "java" "${JDKS[$k]}/bin/java"
sudo update-alternatives --remove "javac" "${JDKS[$k]}/bin/javac"
done
else
# assume something else
echo "could not determine your bash"
exit 0
fi
export JAVA_HOME="${JDKS[$1]}"
echo "switching java home to $JAVA_HOME"
sudo update-alternatives --install "/usr/bin/java" "java" "$JAVA_HOME/bin/java" 100
sudo update-alternatives --install "/usr/bin/javac" "javac" "$JAVA_HOME/bin/javac" 100
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment