Mac上使用Jenv管理多個JDK版本

使用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的版本。



歡迎訂閱「K叔區塊鏈」 - 專一於區塊鏈技術學習

博客地址: http://www.jouypub.com
簡書主頁: https://www.jianshu.com/u/756c9c8ae984
segmentfault主頁: https://segmentfault.com/blog/jouypub
騰訊雲主頁: https://cloud.tencent.com/developer/column/72548
相關文章
相關標籤/搜索