使用Java時會接觸到不同的版本。大多數時候我在使用Java 8,但是因為某些框架或是工具的要求,這時不得不讓Java 7上前線。一般情況下是配置JAVA_HOME,指定不同的Java版本,但是這需要人為手動的輸入。如果又要選擇其他版本,就需要對JAVA_HOME重新進行設置。終于,我發現了JEnv。
正如它的官網所宣稱的那樣,它是來讓你忘記怎么配置JAVA_HOME環境變量的神隊友。使用簡單的命令就可以在不同的Java版本之間進行切換。如果你使用過rbenv,你會發現JEnv就如同rbenv的Java版一樣。
基本使用: 在Mac OS下使用Homebrew安裝JEnv:
> brew install jenv
安裝成功后需要進行一下簡單的配置,讓它可以起作用:
> 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 7、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會顯示:
> jenv versions
* system (set by /Users/bxpeng/.jenv/version)1.71.7.0.71oracle64-1.7.0.711.81.8.0.25oracle64-1.8.0.25
對于多余的版本使用jenv remove可以從jEnv中去掉不需要的Java版本:
> jenv remove 1.6
JDK 1.6 removed
整理后,再運行jenv versions會顯示:
> jenv versions
* system (set by /Users/bxpeng/.jenv/version)1.7.0.711.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