官网下载地址
https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html先解压 jdk-11.0.16.1_macos-x64_bin.tar.gz
cd
ls -a
vim ~/.bash_profile
如果是.gz用这种方式
JAVA_HOME=/Users/xxx/Downloads/jdk/jdk-11.0.16.1.jdk/Contents/Home CLASSPAHT=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:. PATH=$JAVA_HOME/bin:$PATH:. export JAVA_HOME export CLASSPATH export PATH如果是.dmg用这种方式
查看所有已安装 JDK(含版本和路径)
/usr/libexec/java_home -V# JDK 多版本配置 Mac get_java_home() { local ver="$1" if /usr/libexec/java_home -V 2>&1 | grep -qE "\b${ver//./\\.}\b"; then /usr/libexec/java_home -v "$ver" else echo "" fi } export JAVA_8_HOME="$(get_java_home 1.8)" export JAVA_11_HOME="$(get_java_home 11)" export JAVA_21_HOME="$(get_java_home 21)" # 底层静默切换,不输出日志 _set_java_silent() { local target_home="$1" if [[ -z "$target_home" || ! -d "${target_home}/bin" ]]; then return 1 fi PATH=$(echo "$PATH" | tr ':' '\n' | grep -v JavaVirtualMachines | sed '/^$/d' | tr '\n' ':') PATH=${PATH%:} export JAVA_HOME="$target_home" export PATH="${JAVA_HOME}/bin:$PATH" } # 手动切换用,带打印提示 set_java_path() { local target_home="$1" if _set_java_silent "$target_home"; then echo "✅ 当前Java:$(java -version 2>&1 | head -1)" else echo "❌ 无效JAVA_HOME: $target_home" return 1 fi } # ========== 重点:初始化默认JDK,调用静默函数,不打印 ========== if [[ -n "$JAVA_11_HOME" && -d "${JAVA_11_HOME}/bin" ]]; then _set_java_silent "$JAVA_11_HOME" fi # 切换别名(手动敲 jdk8/jdk11/jdk21 才会输出✅) alias jdk8='if [[ -n "$JAVA_8_HOME" && -d "${JAVA_8_HOME}/bin" ]]; then set_java_path "$JAVA_8_HOME"; else echo "❌ JDK8未找到"; fi' alias jdk11='if [[ -n "$JAVA_11_HOME" && -d "${JAVA_11_HOME}/bin" ]]; then set_java_path "$JAVA_11_HOME"; else echo "❌ JDK11未找到"; fi' alias jdk21='if [[ -n "$JAVA_21_HOME" && -d "${JAVA_21_HOME}/bin" ]]; then set_java_path "$JAVA_21_HOME"; else echo "❌ JDK21未找到"; fi' alias jdk-status='echo "JAVA_8_HOME=|$JAVA_8_HOME|";echo "JAVA_11_HOME=|$JAVA_11_HOME|";echo "JAVA_21_HOME=|$JAVA_21_HOME|";java -version' # Maven export MAVEN_HOME=/Users/wangfengchen/Downloads/maven/apache-maven-3.9.16 export PATH=$PATH:$MAVEN_HOME/bin export PATH="/Users/wangfengchen/.git-ai/bin:$PATH"source ~/.bash_profile
javac
java
我们定义了2个别名:jdk8和jdk11。默认配置的是jdk8,如果要切换jdk11,则在终端中执行命令:jdk11。如果要切换回jdk8,则执行命令:jdk8。
如果想确定当前配置的是哪个版本,可以执行命令:java -version进行查看。
maven下载地址
https://maven.apache.org/download.cgi解压maven
将配置放在上面.bash_profile中
export MAVEN_HOME=/Users/xxx/Downloads/maven/apache-maven-3.8.6 export PATH=$PATH:$MAVEN_HOME/bin特别注意:
新打开终端,再敲mvn -v,发现又报:zsh: command not found: mvn。重新敲source ~/.bash_profile后,恢复正常。
这就让我很奇怪,为什么新打开一个终端后,就必须要重新source呢?
原因:
翻阅资料后发现,zsh的配置文件没有加载~/.bash_profile的配置项
解决:
执行如下命令:
vim ~/.zshrc在文件末尾追加如下内容(如没有该文件则直接创建,并追加如下内容保存即可)
source ~/.bash_profile如果你的maven环境变量配置在/etc/profile中则添加这句
source /etc/profile然后执行命令使配置立即生效
source ~/.zshrc之后再打开新终端窗口,直接mvn -v就可以了!
总结:
由于mac系统的升级,新的环境变量读取方式走zsh的就会存在以上问题。