Java 又双叒叕发布新版本,这么多版本如何灵活管理?

前言

不知不觉 JDK13 发布已有两个月,不知道各位有没有下载学习体验一番?每次下载安装之后,需要重新配置一下 Java 环境变量。等到运行平时的项目又需要切回之前 JDK 版本,这又需要重新环境变量。这么重复配置显然非常低效,又不能灵活切换版本。

所幸通过万能 Google 找到解决方案,使用 jenv 管理 JDK 版本。

jenv 介绍

熟悉 Ruby 的同学,应该会觉得比较眼熟,jenv 就是 Java 平台的 rbenv 工具。

jenv 是一个命令行工具,可以在 Linux/OS X 平台使用,可以管理多个版本 JDK,方便在多个版本 JDK 之间切换,另外其还可以设置 JAVA_HOME 环境变量。

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 之后,可以运行 jenv doctor检查是否正确安装。以下为我本机 MacOSX 输出:

刚安装小伙伴运行 jenv doctor ,可以观察到输出:

[ERROR]Javabinaryinpathisnotinthe jenv shims.

这代表还未正确添加 JDK,需要运行下面指令添加 JDK。

jenv 配置

JDK 配置

运行 jenv add jdk_path,将 JDK 交给 jenv 管理。

可能有些小伙伴并不知道 JDK 安装路径,若是 MacOSX,JDK 是通过 Oracle 提供安装包或者通过 brew 安装,可以通过运行 /usr/libexec/java_home -V查找 JDK 路径。

若不是通过以上方式,或者为 Linux 平台,可以先通过 which java 或者 whereis java 找出命令路径。然后通过使用 ls -l 查看命名的实际路径。

JAVA_HOME 配置

有些应用程序将会读取系统 ${JAVA_HOME} 环境变量,通过安装 jenv 插件,切换 JDK 版本时,将会同步设置 ${JAVA_HOME} 变量。

jenvenable-pluginexport## 运行这个才会生效exec$SHELL-l

jenv 使用教程

jenv versions

查看当前系统 jenv 管理所有 JDK 版本。

jenv versions

jenv local

通过上面命令,我们知道当前系统所有 JDK 版本之后,通过下面命令切换 JDK 版本。

JDK 版本切换 JDK1.7

jenvlocal1.7

这里需要注意的,jenv local 切换 JDK 版本只对当前文件夹有效,如果切换到其他文件夹,将会切换会当前默认 JDK 版本。

jenv shell

使用 jenv shell 使切换的 JDK 版本对整个 Shell session 有效。重启 Shell 终端或重新打开新的 Shell 终端,该配置失效。

jenvshell 9.0

jenv global

jenv global 将会设置一个全局默认的 JDK 版本,即使重启 Shell 窗口,该配置也不会改变。

jenvglobal9.0

jenv 小问题

上面几个是 jenv 经常使用的指令,若想了解 jenv 其他指令,可以通过 jenv commands 查找其他指令。

使用 jenv 过程可能会发现,当切换 JDK 版本之后, ${JAVA_HOME} 环境变量没有改变,还是上一个 JDK 版本配置。

这时可以运行 exec $SHELL -l , ${JAVA_HOME} 将会变成当前版本路径。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,695评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,569评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,130评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,648评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,655评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,268评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,835评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,740评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,286评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,375评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,505评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,873评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,357评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,466评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,921评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,515评论 2 359

推荐阅读更多精彩内容