jdk版本管理工具jenv

jenv是跨平臺的 java 版本管理工具。固然,pyenv 仿的 rbenv,jenv 也是仿的 rbenv,功能和用法也很相似。
$ brew install jenvjava

添加 path

$ echo ‘export PATH=「$HOME/.jenv/bin:$PATH」’ >> ~/.zshrc
$ echo ‘eval 「$(jenv init -)」’ >> ~/.zshrcshell

安裝成功,添加 java 版本(需自行下載安裝)

$ brew tap caskroom/versions
$ brew cask install java7
$ brew cask install java8maven

須要注意的是,這裏僅僅安裝了 java 的 pkg 文件,你還須要進入對應的目錄,執行這個 pkg 文件來完成安裝。

$ cd /usr/local/Caskroom/java7/1.7.xxx
$ open xxx.pkg工具

將安裝好的 java 添加到 jenv,注意路徑和版本可能稍有不一樣

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/ui

安裝好後,大部分的使用方法都和 rbenv/pyenv 相似,無非就是 /versions/local/global 等,固然還有一些特殊的配置,好比 java 的 options:插件

使用 1.7 版本

$ jenv local 1.7code

設置編譯參數選項

$ jenv local-options 「-Xmx512m」it

查看 所使用的 java 的信息

$ jenv info javaio

查看版本是否更改爲功:
$ java -version
java version 「1.8.0_66」
Java™ SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot™ 64-Bit Server VM (build 25.66-b17, mixed mode)
$ jenv local 1.7
$ jenv info java
Jenv will exec : /Users/xxx/.jenv/versions/1.7/bin/java
Exported variables :
JAVA_HOME=/Users/xxx/.jenv/versions/1.7
$ java -version
java version 「1.7.0_80」
Java™ SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot™ 64-Bit Server VM (build 24.80-b11, mixed mode)
$ jenv which java
/Users/xxx/.jenv/versions/1.7/bin/java
$ jenv enable-plugin maven
jenv: no such command `enable-plugin’zsh

咱們發現雖然 jenv 的 version對了,可是 java -version 的結果仍是不對,並且嘗試開啓 maven 插件也出錯。執行jenv doctor
查看緣由:
$ jenv doctor
[OK]
No JAVA_HOME set
[ERROR]
Java binary in path is not in the jenv shims.
[ERROR]
Please check your path, or try using /path/to/java/home is not a valid path to java installation.

PATH : …
[ERROR]
Jenv is not loaded in your zsh
[ERROR]
To fix :
cat eval 「$(jenv init -)」 >> /Users/xxx/.zshrc

原來是由於終端開了多個標籤頁,在另外一個標籤頁編輯完 .zshrc 文件後直接到這個標籤頁執行了,應該先 source 一下:source ~/.zshrc

$ jenv enable-plugin maven
maven plugin activated
$ jenv disable-plugin maven
maven disabled

成功開啓。須要注意,插件的支持是全局的,和 local/shell 無關,只須要開啓一次就好了。jenv 的全部插件能夠查看列表