使用Java時會接觸到不一樣的版本。大多數時候我在使用Java 8,可是由於某些框架或是工具的要求,這時不得不讓Java 7上前線。通常狀況下是配置JAVA_HOME,指定不一樣的Java版本,可是這須要人爲手動的輸入。若是又要選擇其餘版本,就須要對JAVA_HOME從新進行設置。終於,我發現了JEnv。java
正如它的官網所宣稱的那樣,它是來讓你忘記怎麼配置JAVA_HOME環境變量的神隊友。使用簡單的命令就能夠在不一樣的Java版本之間進行切換。若是你使用過rbenv,你會發現JEnv就如同rbenv的Java版同樣。segmentfault
基本使用: 在Mac OS下使用Homebrew安裝JEnv:bash
> brew install jenv
安裝成功後須要進行一下簡單的配置,讓它能夠起做用:oracle
> echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile > echo 'eval "$(jenv init -)"' >> ~/.bash_profile
好了,JEnv已經安裝好了,讓咱們來看一下它找見哪一個Java版本了:框架
> jenv versions * system (set by /Users/bxpeng/.jenv/version)
它只找到了系統默認的Java,*表示當前選擇的版本。儘管我已經下載了其餘版本的Java,可是它並不會自動發現工具
和rbenv不一樣的是,JEnv不能本身安裝任何版本的Java,因此須要咱們手動安裝好以後再用JEnv指向它們。
安裝Java 7,能夠在Oracle進行下載.它將安裝到/Library/Java/JavaVirtualMachines/下;
安裝Java 8,能夠在Oracle進行下載.它將安裝到/Library/Java/JavaVirtualMachines/下。學習
使用jenv add將Java 七、Java 8加入jenv中:區塊鏈
> jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/ 1.7 added 1.7.0.71 added oracle64-1.7.0.71 added
> jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/ 1.8 added 1.8.0.25 added oracle64-1.8.0.25 added
如今運行jenv versions會顯示:ui
> jenv versions * system (set by /Users/bxpeng/.jenv/version) 1.7 1.7.0.71 oracle64-1.7.0.71 1.8 1.8.0.25 oracle64-1.8.0.25
對於多餘的版本使用jenv remove能夠從jEnv中去掉不須要的Java版本:spa
> jenv remove 1.6 JDK 1.6 removed
整理後,再運行jenv versions會顯示:
> jenv versions * system (set by /Users/bxpeng/.jenv/version) 1.7.0.71 1.8.0.25
選擇一個Java版本,運行jenv local,例如:
> jenv local 1.8.0.25 > java -version java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
OK,咱們已經成功地指定了某文件夾中local的Java版本。咱們也能夠運行jenv global
設置一個默認的Java版本,運行jenv which java
顯示可執行的Java的完整路徑。
你也能夠在特定的文件夾下使用.java-version
文件來設定Java的版本。當我須要在Project中使用Java 7時,僅僅須要把1.7.0.71做爲內容保存在.java-version
文件中,當進入該文件夾時,JEnv會自動地幫助我設定local的Java的版本。