之前有下载多个版本的jdk,切换版本用的是最常用的,bash_profile设置环境变量,切换的时候,修改路径。但是最近发现不太行了,哪怕修改路径,还是显示jdk17,导致有些操作进行不了,再查找资料的时候,发下如下方法可以解决此问题,特意记录。
首先运行 /usr/libexec/java_home -V 查看本机存在哪些java版本
Matching Java Virtual Machines (3):
17.0.4 (arm64) "Azul Systems, Inc." - "Zulu 17.36.13" /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
11.0.18 (arm64) "Azul Systems, Inc." - "Zulu 11.62.17" /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
1.8.0_332 (arm64) "Azul Systems, Inc." - "Zulu 8.62.0.19" /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
选择想切换的版本(如1.8.0_332)然后:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_332`
或者可以只指定主要版本,例如
export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0`
运行 java -version :
openjdk version "1.8.0_332"
OpenJDK Runtime Environment (Zulu 8.62.0.19-CA-macos-aarch64) (build 1.8.0_332-b09)
OpenJDK 64-Bit Server VM (Zulu 8.62.0.19-CA-macos-aarch64) (build 25.332-b09, mixed mode)
这种只支持当前窗口使用,持久使用,需要在环境变量配置文件进行修改
~/.bash_profile 或者 ~/.zshrc文件中添加如下代码:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0)
保存确认退出后,使环境变量生效
source ~/.bash_profile
现在最新的mac基本都是zsh,如果不想修改zshrc的内容,可以在zshrc文件内添加
source ~/.bash_profile
保存退出,并执行
source ~/.zshrc
这样就可以实现版本的切换,还是比较方便的