前言
不知不覺 JDK13 發(fā)布已有兩個月厦滤,不知道各位有沒有下載學(xué)習(xí)體驗一番援岩?每次下載安裝之后,需要重新配置一下 Java 環(huán)境變量掏导。等到運(yùn)行平時的項目又需要切回之前 JDK 版本享怀,這又需要重新環(huán)境變量。這么重復(fù)配置顯然非常低效趟咆,又不能靈活切換版本添瓷。
所幸通過萬能 Google 找到解決方案,使用?jenv?管理 JDK 版本值纱。
jenv 介紹
熟悉 Ruby 的同學(xué)鳞贷,應(yīng)該會覺得比較眼熟,jenv 就是 Java 平臺的 rbenv 工具虐唠。
jenv 是一個命令行工具搀愧,可以在 Linux/OS X 平臺使用,可以管理多個版本 JDK凿滤,方便在多個版本 JDK 之間切換妈橄,另外其還可以設(shè)置 JAVA_HOME 環(huán)境變量。
Windows 真的傷不起
使用 jenv 有一個前提翁脆,必須提前安裝 JDK眷蚓,其不提供下載安裝 JDK 的功能。MacOSX 平臺可以提前使用 brew 安裝 JDK反番。
jenv 安裝
手動安裝
首先下載 jenv 源程序
gitclonehttps://github.com/jenv/jenv.git ~/.jenv
然后再將 jenv 命令路徑放入 Shell 配置文件中沙热。
若使用 Shell 為 bash:
echo'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profileecho'eval"$(jenv init -)"' >> ~/.bash_profilesource ~/.bash_profile
若使用 Shell 為 zsh
echo'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrcecho'eval"$(jenv init -)"' >> ~/.zshrcsource ~/.zshrc
自動安裝
若使用 MacOSX,可以直接使用 brew安裝:
brew install jenv
jenv 校驗
安裝 jenv 之后罢缸,可以運(yùn)行 jenv doctor檢查是否正確安裝篙贸。以下為我本機(jī) MacOSX 輸出:
剛安裝小伙伴運(yùn)行 jenv doctor ,可以觀察到輸出:
[ERROR]Javabinaryinpathisnotinthe jenv shims.
這代表還未正確添加 JDK枫疆,需要運(yùn)行下面指令添加 JDK爵川。
jenv 配置
JDK 配置
運(yùn)行 jenv add jdk_path,將 JDK 交給 jenv 管理。
可能有些小伙伴并不知道 JDK 安裝路徑息楔,若是 MacOSX寝贡,JDK 是通過 Oracle 提供安裝包或者通過 brew 安裝,可以通過運(yùn)行 /usr/libexec/java_home -V查找 JDK 路徑值依。
若不是通過以上方式圃泡,或者為 Linux 平臺,可以先通過 which java 或者 whereis java 找出命令路徑愿险。然后通過使用 ls -l 查看命名的實際路徑颇蜡。
JAVA_HOME 配置
有些應(yīng)用程序?qū)x取系統(tǒng) ${JAVA_HOME} 環(huán)境變量,通過安裝 jenv 插件,切換 JDK 版本時风秤,將會同步設(shè)置 ${JAVA_HOME} 變量鳖目。
jenvenable-pluginexport## 運(yùn)行這個才會生效exec$SHELL-l
jenv 使用教程
jenv versions
查看當(dāng)前系統(tǒng) jenv 管理所有 JDK 版本。
jenv versions
jenv local
通過上面命令唁情,我們知道當(dāng)前系統(tǒng)所有 JDK 版本之后疑苔,通過下面命令切換 JDK 版本。
JDK 版本切換 JDK1.7
jenvlocal1.7
這里需要注意的甸鸟,jenv local 切換 JDK 版本只對當(dāng)前文件夾有效,如果切換到其他文件夾,將會切換會當(dāng)前默認(rèn) JDK 版本兵迅。
jenv shell
使用 jenv shell 使切換的 JDK 版本對整個 Shell session 有效抢韭。重啟 Shell 終端或重新打開新的 Shell 終端,該配置失效恍箭。
jenvshell 9.0
jenv global
jenv global 將會設(shè)置一個全局默認(rèn)的 JDK 版本刻恭,即使重啟 Shell 窗口,該配置也不會改變扯夭。
jenvglobal9.0
jenv 小問題
上面幾個是 jenv 經(jīng)常使用的指令鳍贾,若想了解 jenv 其他指令,可以通過 jenv commands 查找其他指令交洗。
使用 jenv 過程可能會發(fā)現(xiàn)骑科,當(dāng)切換 JDK 版本之后, ${JAVA_HOME} 環(huán)境變量沒有改變构拳,還是上一個 JDK 版本配置咆爽。
這時可以運(yùn)行 exec $SHELL -l , ${JAVA_HOME} 將會變成當(dāng)前版本路徑置森。