Mac系统 JDK版本切换

题记:公司的项目用的是JDK7版本,但最近想做一个项目,记得学SpringBoot的时候说不支持JDK7,版本得8起步,想着还用JDK7的话,以后也许会不方便,决定自己的项目用JDK8版本。

1.首先安装JDK8,去Oracle官网找到对应的版本即可。

需要说明的是,JDK安装的默认路径为:/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk

2.配置.bash_profile文件

终端输入命令行open .bash_profile即可用自带的文本编辑器打开,

1 #java
2 export JAVA_7_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
3 export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
4 export JAVA_HOME=$JAVA_7_HOME

创建alias命令,动态切换JAVA_HOME的配置

1 alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
2 alias jdk7='export JAVA_HOME=$JAVA_7_HOME'

保存后输入命令行source .bash_profile使之生效。 

3.验证

输入java -version可以看到默认版本是7版本。再输入jdk8,切换后查看版本可以看到jdk已经是1.8.0版本了。

So~以后做自己项目时输入jdk8切换到8版本就好啦!耶! 

后记(2018.10.31)

  后来发现只要一关闭终端,重启终端输入jdk8时就报 zsh:command not found 的错误,重新source .bash_profile后又可以执行,尝试了好久也没找到原因,不得已装了jenv版本管理工具,今天装了MySQL后,重启终端输入mysql -u root -p又报了同样的错误,网上搜了一下,在.zshrc文件最后追加一行source .bash_profile即可

  这是因为终端zsh加载的是.zshrc文件,而我在.zshrc文件中没有定义MySQL的环境变量,如果.zshrc文件没有source .bash_profile这句话,就会提示command not found,试了一下,如果将.bash_profile文件中关于mysql的环境变量也复制到.zshrc中,重启终端也不会报command not found的错误了。

  由此推测:如果在.bash_profile文件中定义了环境变量,也复制到.zshrc文件里,就不会报错,但这样一来就比较麻烦,增加了工作量,如果在.zshrc文件最后一行加一句source .bash_profile,就无需将.bash_profile文件的环境变量再复制到.zshrc文件里了,减少了工作量,避免错误。

原文地址:https://www.cnblogs.com/luckyliulin/p/9722909.html