如何配置MacBook上通过Homebrew安装的Java 8环境路径?
解决Mac上Java 8与Java 9版本切换问题
我来帮你搞定这个Java版本显示不对的问题~ 你遇到的情况是因为Mac默认的/usr/bin/java指向的是系统自带的Java 9,而通过brew cask安装的Java 8在另一个独立路径下,系统还没优先识别到它。下面给你两种实用的解决方法:
方法一:直接通过环境变量临时/永久切换
1. 确认Java 8的安装路径
先在终端执行这个命令,获取Java 8的具体安装路径:
/usr/libexec/java_home -v 1.8
执行后会输出类似这样的路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_xxx.jdk/Contents/Home
2. 临时切换(仅当前终端会话有效)
如果只是临时想用Java 8,直接在终端输入:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
然后再执行java -version,就能看到版本已经变成Java 8了。
3. 永久切换(每次打开终端都生效)
根据你用的shell类型(bash或zsh)修改对应的配置文件:
- 如果你用的是bash,编辑
~/.bash_profile:echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)' >> ~/.bash_profile source ~/.bash_profile - 如果你用的是zsh(现在Mac默认是zsh),编辑
~/.zshrc:echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)' >> ~/.zshrc source ~/.zshrc
执行完后重新打开终端,再查java -version就会默认显示Java 8了。
方法二:用jenv管理多个Java版本(更推荐,适合频繁切换)
jenv是一个专门管理Java版本的工具,能轻松在多个版本间切换:
1. 安装jenv
brew install jenv
2. 把jenv加入shell配置
- bash用户:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(jenv init -)"' >> ~/.bash_profile source ~/.bash_profile - zsh用户:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(jenv init -)"' >> ~/.zshrc source ~/.zshrc
3. 添加已安装的Java版本到jenv
把Java 8和Java 9都添加进去:
jenv add $(/usr/libexec/java_home -v 1.8) jenv add $(/usr/libexec/java_home -v 9)
4. 设置默认版本
- 设置全局默认用Java 8:
jenv global 1.8 - 如果只想在某个项目目录下用Java 8,进入该目录后执行:
jenv local 1.8 - 临时会话切换到Java 9:
jenv shell 9
这样以后你想切换版本只需要一条命令,非常方便~
内容的提问来源于stack exchange,提问作者Ébe Isaac
相关产品推荐
相关产品推荐

