jEnv 是什么?
先來看一下官方介紹
jEnv is a command line tool to help you forget how to set the JAVA_HOME environment variable.
jEnv 是一個可以幫你你忘掉怎么去配置JAVA_HOME環境變量的命令行工具。
簡單來說就是一個便於切換Java版本的工具,有了他我們再也不用手動去改環境變量了。
安裝
Mac OS X via Homebrew
brew install jenv
Linux / OS X
git clone https://github.com/gcuisinier/jenv.git ~/.jenv
配置
Bash
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
Zsh
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
如果沒有在配置好如上的jEnv環境變量的話,在下邊的添加JAVA_HOME時會遇到如下錯誤:
ln: /Users/demo/.jenv/versions/oracle64-1.7.0.45: No such file or directory
如果已經添加但是仍沒有生效的話,可以試一下重新加載bash_profile
source ~/.bash_profile
安裝Java
可以去Oracle的官網下載JDK的安裝包進行安裝。也可以通過Homebrew-Cask來安裝。
Homebrew-Cask 是一個基於Homebrew來優雅、簡單和快速的安裝macOS應用和大型二進制文件的工具。
使用如下命令安裝Homebrew-Cask
brew tap caskroom/cask
通過Homebrew-Cask我們可以這樣安裝Chrome
brew cask install google-chrome
我們也可以一行命令來安裝Java
brew cask install java
之前有stackoverflow上的問題mac-os-x-and-multiple-java-versions講到可以通過Home-Cask安裝多個Java版本:
brew cask install java7
brew cask install java6
但其實這種方法已經不可用了,會遇到
Error: Cask 'java7' is unavailable: No Cask with this name exists.
因為 Homebrew-Cask已經移除了Java 7,所以想安裝Java 7的話,還是需要去Oracle官網下載。
配置Java
Java安裝好之后,使用如下命令:
jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
即可成功添加Java配置到 jEnv(如果遇到錯誤,請檢查下前邊的環境變量配置)。
Mac的Java默認會安裝到 /Library/Java/JavaVirtualMachines/ 路徑下。
同樣,我們添加好jdk1.8
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/
oracle64-1.8.0.131 added
1.8.0.131 added
1.8 added
使用
列出管理的JDK
$ jenv versions
* system (set by /Users/demo/.jenv/version)
1.7
1.7.0.45
1.8
1.8.0.131
oracle64-1.7.0.45
oracle64-1.8.0.131
看起來有點多,但其實就是1.7、1.8兩個版本的別名。
配置全局Java版本
$ jenv global 1.7
配置當前目錄的Java版本
$ jenv local 1.7
這種方式會只改變當前所在目錄的Java版本,可以通過如下命令取消
$ jenv local --unset
配置shell實例的版本
jenv shell 1.8
這種配置方式,只會影響當前shell窗口。
配置JVM Options
$ jenv global-options "-Xmx512m"
or
$ jenv local-options "-Xmx512m"
or
$ jenv shell-options "-Xmx512m"