在环境变量配置文件中添加以下脚本内容 推荐/etc/profile 如下图

脚本本体
jdk() {
# 定义所有 JDK 路径(新增版本只需在这里加一行)
local JDK_8="/opt/java/jdk-8.0.471"
local JDK_11="/opt/java/jdk-11.0.29"
local JDK_17="/opt/java/jdk-17.0.17"
local JDK_21="/opt/java/jdk-21.0.9"
# 想加 JDK_23 直接在上面写一行即可,下面不需要改任何东西
# ─── 自动收集所有 JDK_ 开头的变量名,提取版本号 ───
local versions=()
local var_name
for var_name in $(compgen -v | grep '^JDK_' | sort -t_ -k2 -n); do
versions+=("${var_name#JDK_}")
done
# ─── 检查输入的版本号是否有效 ───
local valid=0 v
for v in "${versions[@]}"; do
[[ "$1" == "$v" ]] && { valid=1; break; }
done
if [[ $valid -eq 0 ]]; then
echo "Usage: jdk ${versions[*]}" && return
fi
# ─── 设置 JAVA_HOME(间接引用 ${!var}) ───
local var="JDK_$1"
export JAVA_HOME="${!var}"
# ─── 移除 PATH 中所有已注册的 JDK bin 路径 ───
local jdk_path
for var_name in $(compgen -v | grep '^JDK_'); do
jdk_path="${!var_name}"
PATH=${PATH//":${jdk_path}/bin"/}
PATH=${PATH//"${jdk_path}/bin:"/}
done
# 清理残留的 :: 和首尾冒号
PATH=${PATH//::/:}
PATH=${PATH#:}
PATH=${PATH%:}
# ─── 添加新 JDK bin 到 PATH 开头 ───
export PATH="$JAVA_HOME/bin:$PATH"
# ─── 非静默模式显示版本 ───
if [[ "$2" != "silent" ]]; then
echo "==> JDK switched to:"
java -version
fi
}
# 默认启用 JDK 11
jdk 11 silent如何使用
控制台输入 jdk ${java版本} 实现切换 注意中间有个空格
root@TskWz:~# jdk 8
==> JDK switched to:
java version "1.8.0_471"
Java(TM) SE Runtime Environment (build 1.8.0_471-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.471-b09, mixed mode)
root@TskWz:~# jdk 11
==> JDK switched to:
java version "11.0.29" 2025-10-21 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.29+8-LTS-387)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.29+8-LTS-387, mixed mode)