Skip to content

Mac多版本jdk管理

约 424 字大约 1 分钟

手册

2026-01-07

mac os 系统管理多个不同版本的jdk环境,实现灵活切换。

下载jdk,直接在idea里去下载,不用自己配置,简单省事

image-20260107141504053

image-20260107141311898

选择合适的版本与供应商

image-20260107141558678

下载好jdk后,查看一下是否下载成功

image-20260107141750416

编辑脚本

open -e ~/.zshrc

在脚本的最后面追加如下信息,脚本信息如下

# ==================== Java 环境配置 ====================

# 设置默认 Java 版本为 17.0.15
export JAVA_HOME=$(/usr/libexec/java_home -v 17.0.15 2>/dev/null || /usr/libexec/java_home)
export PATH="$JAVA_HOME/bin:$PATH"

# 快速切换 Java 版本函数
jdk() {
    case $1 in
        8|1.8)
            local version="1.8.0_442"
            ;;
        17)
            local version="17.0.15"
            ;;
        21)
            local version="21.0.9"
            ;;
        list)
            echo "可用版本:"
            /usr/libexec/java_home -V
            return 0
            ;;
        *)
            echo "用法: jdk [8|17|list]"
            echo "当前版本:"
            java -version
            return 1
            ;;
    esac
    
    export JAVA_HOME=$(/usr/libexec/java_home -v "$version" 2>/dev/null)
    if [ -z "$JAVA_HOME" ]; then
        echo "错误: Java $version 未安装"
        return 1
    fi
    
    # 更新 PATH,确保 Java bin 目录在最前面
    export PATH="$JAVA_HOME/bin:${PATH//$JAVA_HOME\/bin:/}"
    echo " 已切换到 Java $version"
    echo "路径: $JAVA_HOME"
    java -version
}

# 显示当前 Java 信息函数
java-info() {
    echo "=== Java 环境信息 ==="
    echo "JAVA_HOME: $JAVA_HOME"
    echo "Java 版本:"
    java -version 2>&1 | head -3
    echo "编译器版本:"
    javac -version 2>&1
    echo "可用版本:"
    /usr/libexec/java_home -V
}

# 设置别名
alias java8='jdk 8'
alias java17='jdk 17'
alias java21='jdk 21'
alias javainfo='java-info'

顺便加上maven的配置信息

# ==================== Maven 环境配置 ====================

export MAVEN_HOME="/Users/gaohan/Apply/apache-maven-3.9.11"
export PATH="$MAVEN_HOME/bin:$PATH"

保存退出后,再执行如下依赖加载配置

source ~/.zshrc

测试切换java版本

命令 jdk 8

image-20260107142152139

命令 jdk 17

image-20260107142229730

命令 jdk 21

image-20260107142252607

测试打印当前java环境信息

image-20260107140259845