# 定义可用的 Java 版本和对应的安装路径
declare -A JAVA_VERSIONS
JAVA_VERSIONS=(
["8"]="/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home"
["17"]="/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home"
)
# 设置默认的 Java 版本
DEFAULT_JAVA_VERSION="8"
# 打印可用的 Java 版本
print_available_versions() {
echo "可用的 Java 版本:"
for version in "${(@k)JAVA_VERSIONS}"; do
echo " $version"
done
}
# 切换 Java 版本
switch_java() {
local version=$1
if [[ -z "${JAVA_VERSIONS[$version]}" ]]; then
echo "错误: Java 版本 $version 不存在。"
print_available_versions
return 1
fi
export JAVA_HOME="${JAVA_VERSIONS[$version]}"
export PATH="$JAVA_HOME/bin:$PATH"
echo "已切换到 Java $version"
java -version
}
# 将 switch_java 函数添加到 zsh 的命令补全系统中
compdef _switch_java switch_java
# 启用补全函数
_switch_java() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments '1: :->version' && return 0
case $state in
version)
_values 'Java version' "${(@k)JAVA_VERSIONS}"
;;
esac
}
# 切换到默认的 Java 版本
switch_java $DEFAULT_JAVA_VERSION
保存在 switch_java.zsh文件中
~/.zshrc文件中添加 source ~/switch_java.zsh