0
点赞
收藏
分享

微信扫一扫

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

Java 又双叒叕发布新版本,这么多版本如何灵活管理?_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 源程序

​git clone https://github.com/jenv/jenv.git ~/.jenv​

然后再将 jenv 命令路径放入 Shell 配置文件中。

若使用 Shell 为 ​​bash​​:

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile   
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

若使用 Shell 为 ​​zsh​

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc  
echo 'eval "$(jenv init -)"' >> ~/.zshrc
source ~/.zshrc

自动安装

若使用 MacOSX,可以直接使用 ​​brew​​安装:

brew install jenv

jenv 校验

安装 jenv 之后,可以运行 ​​jenv doctor​​检查是否正确安装。以下为我本机 MacOSX 输出:

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


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

[ERROR] Java binary in path is not in the jenv shims.

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

jenv 配置


JDK 配置

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

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


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


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


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


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


JAVA_HOME 配置

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

jenv enable-plugin export
## 运行这个才会生效
exec $SHELL -l

jenv 使用教程


jenv versions

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

jenv versions


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


jenv local

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

JDK 版本切换 JDK1.7

jenv local 1.7


Java 又双叒叕发布新版本,这么多版本如何灵活管理?_环境变量_07


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

jenv shell

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

jenv shell 9.0

jenv global

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

jenv global 9.0

jenv 小问题


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

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

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


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

最后


做个小调查,你还在用那个版本 JDK?各位小伙伴可以留言一下,嘿嘿~

< END >

举报

相关推荐

0 条评论