使用jEnv在Mac/Linux環境配置多版本Java


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"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM