Java多版本管理工具-jenv
1、jenv介绍
jenv是一个用于管理Java版本的命令行工具,它可以帮助我们在同一台计算机上轻松地切换和管理多个不同版本的Java。通过使用jenv我们可以更方便地设置全局的JDK版本、项目特定的JDK版本以及Shell会话特定的JDK版本。jenv可以帮助我们更加灵活地管理和切换多个JDK版本,使开发环境的配置更加便捷和高效。也不需要在安装成功JDK后在配置环境变量了,jenv会为我们自动管理环境变量。
2、下载
2.1、官网地址
jenv官网:https://www.jenv.be/
Github地址:https://github.com/jenv/jenv
2.2、Windows下载
Windows安装需要使用JEnv-for-Windows进行安装,下载地址:https://github.com/FelixSelter/JEnv-for-Windows
下载成功后,将下载的压缩包存放到自己自定义的磁盘路径中并解压压缩包。

3、配置环境变量
首先将jenv目录添加到系统环境变量中。进入环境变量:此电脑->属性->高级系统设置->环境变量

找到 path 属性,点击编辑,新建一个添加路径,将Jenv 安装的目录路径添加里面。

添加成功后,点击确定安装成功。
4、初始化jenv
环境变量添加后,通过win+R打开 cmd命令行,执行 jenv 命令。提示以下信息:

提示报错了,报错信息如下:

大概意思就是需要管理员运行。我们就用管理员的方式打开命令行。

用超级管理员打开后,再次执行 jenv

发现没有报错信息,执行成功。命令行执行jenv成功后,jenv会清空所有已经存在的java环境变量。在命令行输入JDK发现已经失效了。

后续 jenv 会接管JDK的环境变量的配置。
5、使用jenv
5.1、添加当前的jdk
使用 jenv add <name> <path> 添加jdk
1 | jenv add jdk8 D:\java |

5.2、查看
使用 jenv list 列出jdk
1 | jenv list |

5.3、切换版本
使用 jenv change <name> 全局切换jdk
1 | jenv change jdk8 |

改变成功后,在命令行输入 java -version

通过上面发现,JDK环境变量自动添加成功。我们也可以通过使用 jenv -help命令查看更多命令。
5.4、添加其他JDK版本
访问Oracle官网下载其他版本JDK:https://www.oracle.com/java/technologies/downloads/,这里我下载一个jdk11,下载成功后进行安装。双击java程序更改安装路径即可,安装在 D:\Java11 。

然后不用配置环境变量,直接把java11加入到jenv中进行管理。
1 | jenv add jdk11 D:\java11 |
加入成功后。使用查看添加信息。
1 | jenv list |

切换全局版本。
1 | jenv change jdk11 |
执行成功后查看版本信息,发现jdk已经变为jdk11,切换成功。

6、踩坑记录
当jdk从8切换到jdk11,在从jdk11切换到jdk8,javac命令版本没有切换问题。

需要使用jenv link <executable> 解决javac版本与java版本不一致 ,jenv切换到jdk后,java和javac的版本不一致,使用jenv link在JAVA_HOME下创建特定版本的javac链接
1 | jenv link javac.exe |

再次切换版本测试:

jenv的这个命令可以强制maven使用jenv配置的java版本
1 | jenv enable-plugin maven |



