Mac下jdk多版本管理

網上試了.bash_profile中增長路徑設置別名的方法,可是始終沒法切換,只能使用jenv了。java

1. 下載 jenv(來自官網)

git clone https://github.com/gcuisinier/jenv.git ~/.jenv

2. 安裝 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

3. 查看 java 版本

$ jenv versions
* system (set by /Users/Bill/.jenv/version)

能夠看到 jenv 只列出了系統內置的 Java 版本(system),由於其它兩個版本雖然安裝了,但須要咱們手動添加到 jenv 中,這樣 jenv 才能管理它們。github

4. 添加新的 java 版本

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

5. 刪除 java 版本

你會發現添加新版本時,每一個版本都會一次性自動加入 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

6. 指定 Java 版本

這要用 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 命令。

相關文章
相關標籤/搜索