网上试了.bash_profile中增长路径设置别名的方法,可是始终没法切换,只能使用jenv了。java
git clone https://github.com/gcuisinier/jenv.git ~/.jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source .bash_profile
这将在 ~/.bash_profile 文件中追加一个 export 命令和 eval 命令。前者追加 jenv 的路径到环境变量 PATH 中,后者执行 jenv init -命令。这样每打开一个 bash 终端窗就能够调用 jenv 命令,而且默认执行一次 jenv init - 命令了。git
$ jenv versions
* system (set by /Users/Bill/.jenv/version)
能够看到 jenv 只列出了系统内置的 Java 版本(system),由于其它两个版本虽然安装了,但须要咱们手动添加到 jenv 中,这样 jenv 才能管理它们。github
Bill-Mac:~ Bill$ jenv add /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Home oracle64-1.6.0.65 added 1.6.0.65 added 1.6 added Bill-Mac:~ Bill$ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home oracle64-1.7.0.75 added 1.7.0.75 added 1.7 added Bill-Mac:~ Bill$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home oracle64-1.8.0.144 added 1.8.0.144 added 1.8 added
你会发现添加新版本时,每一个版本都会一次性自动加入 3 个不一样版本,好比添加1.8的时候bash
oracle64-1.8.0.144 added 1.8.0.144 added 1.8 added
咱们没有必要保留这么多版本,其实它们都指向同一个 JDK,咱们能够把多余的两个版本删除:oracle
Bill-Mac:~ Bill$ jenv versions * system (set by /Users/Bill/.jenv/version) 1.6 1.6.0.65 1.7 1.7.0.75 1.8 1.8.0.144 oracle64-1.6.0.65 oracle64-1.7.0.75 oracle64-1.8.0.144 Bill-Mac:~ Bill$ jenv remove 1.6.0.65 JDK 1.6.0.65 removed Bill-Mac:~ Bill$ jenv remove 1.7.0.75 JDK 1.7.0.75 removed Bill-Mac:~ Bill$ jenv remove 1.8.0.144 JDK 1.8.0.144 removed Bill-Mac:~ Bill$ jenv remove oracle64-1.6.0.65 JDK oracle64-1.6.0.65 removed Bill-Mac:~ Bill$ jenv remove oracle64-1.7.0.75 JDK oracle64-1.7.0.75 removed Bill-Mac:~ Bill$ jenv remove oracle64-1.8.0.144 JDK oracle64-1.8.0.144 removed Bill-Mac:~ Bill$ jenv versions * system (set by /Users/Bill/.jenv/version) 1.6 1.7 1.8
这要用 jenv local 命令:ui
Bill-Mac:~ Bill$ jenv local 1.8 Bill-Mac:~ Bill$ jenv versions system 1.6 1.7 * 1.8 (set by /Users/Bill/.java-version)
这样当前版本就变成 1.8 了,你能够看一下:spa
Bill-Mac:~ Bill$ java -version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
你要是想查看当前版本在硬盘上的哪一个位置,能够用 jenv which java:code
Bill-Mac:~ Bill$ jenv which java /Users/Bill/.jenv/versions/1.8/bin/java
这固然不是真实的路径,而是一个硬连接。你能够找到/Users/Bill/.jenv/versions目录,发现全部的 java 版本都被列在了这里,都是软连接,指向了对应的 java 安装目录blog
Bill-Mac:versions Bill$ pwd /Users/Bill/.jenv/versions Bill-Mac:versions Bill$ ls -l total 24 lrwxr-xr-x 1 Bill staff 68 9 8 20:42 1.6 -> /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Home lrwxr-xr-x 1 Bill staff 63 9 8 20:42 1.7 -> /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home lrwxr-xr-x 1 Bill staff 64 9 8 20:42 1.8 -> /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
你还能够指定一个全局的版本:rem
jenv global 1.8
这样,默认的 java 版本就是 1.8 了。我理解的是全部用户都是1.8。可是我使用java -version仍是显示1.7。
因此尽可能使用 jenv local 命令。