首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java 又双叒叕发布新版本,这么多版本如何灵活管理?

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

作者头像
andyxh
发布2019-11-28 00:16:11
发布2019-11-28 00:16:11
1.2K00
代码可运行
举报
文章被收录于专栏:程序通事程序通事
运行总次数:0
代码可运行

前言

不知不觉 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

代码语言:javascript
代码运行次数:0
运行
复制
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile   
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

若使用 Shell 为 zsh

代码语言:javascript
代码运行次数:0
运行
复制
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc  
echo 'eval "$(jenv init -)"' >> ~/.zshrc
source ~/.zshrc

自动安装

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

代码语言:javascript
代码运行次数:0
运行
复制
brew install jenv

jenv 校验

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

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

代码语言:javascript
代码运行次数:0
运行
复制
[ERROR] Java binary in path is not in the 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} 变量。

代码语言:javascript
代码运行次数:0
运行
复制
jenv enable-plugin export
## 运行这个才会生效
exec $SHELL -l

jenv 使用教程

jenv versions

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

代码语言:javascript
代码运行次数:0
运行
复制
jenv versions

jenv local

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

JDK 版本切换 JDK1.7

代码语言:javascript
代码运行次数:0
运行
复制
jenv local 1.7

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

jenv shell

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

代码语言:javascript
代码运行次数:0
运行
复制
jenv shell 9.0

jenv global

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

代码语言:javascript
代码运行次数:0
运行
复制
jenv global 9.0

jenv 小问题

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • jenv 介绍
  • jenv 安装
  • jenv 配置
  • jenv 使用教程
    • jenv versions
    • jenv local
    • jenv shell
    • jenv global
  • jenv 小问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档