JEnv 与 JEnv-for-Windows:Java 开发者的版本控制利器
在Java开发领域,随着技术的不断进步,不同的项目可能需要使用不同版本的Java Development Kit (JDK)。为了有效管理这些多样化的环境需求,`JEnv` 和其针对Windows系统的实现 `JEnv-for-Windows` 成为了众多开发者的选择。这两个工具旨在提供一种简便的方式来切换和管理多个Java版本,确保开发和测试环境的一致性与灵活性。
什么是JEnv?
JEnv 是一个类似于Pyenv的Java版本管理工具,专为Java开发者设计。它允许你在同一台机器上安装多个JDK,并能够快速、方便地在这些版本之间进行切换。JEnv通过管理环境变量,确保当你运行Java命令时,系统会自动使用你所选择的JDK版本。这对于那些需要维护多个项目,每个项目依赖不同Java版本的开发者来说,无疑是一个巨大的便利。
为何需要JEnv-for-Windows?
尽管JEnv本身主要面向Unix-like系统(如Linux和macOS),但在Windows平台上直接使用可能会遇到兼容性问题。JEnv-for-Windows 的出现填补了这一空白,它对JEnv进行了调整和优化,使其能够无缝运行于Windows环境中。这意味着Windows用户现在也能享受到JEnv带来的版本管理便利,无需担心操作系统带来的限制。
JEnv 安装(非Windows)
对于Linux和macOS用户,可以通过以下步骤安装JEnv:
使用Homebrew(macOS推荐):
1
brew install jenv
手动安装:
1
git clone https://github.com/jenv/jenv.git ~/.jenv
安装完成后,需要将JEnv的初始化脚本添加到shell配置文件(如.bashrc
, .zshrc
)中,并执行相应的初始化命令:
1 | echo 'export JENV_ROOT="$HOME/.jenv"' >> ~/.bashrc |
JEnv-for-Windows 安装
- 克隆此仓库
- 将其添加到路径中
- 运行一次
jenv
,让脚本完成其余的工作 - 如果使用 cmd,需要调用批处理文件。如果使用 PowerShell,则应调用 /src/jenv.ps1
- 有些人报告将 JEnv 放入 C:/Programs 文件夹时遇到问题,因为需要管理员权限
- 希望能帮到你。如果还有问题,请打开一个 issue
警告:
有时在进入指定本地 jenv 的新目录时需要调用 jenv。这将为当前 shell 设置你的 JAVA_HOME,确保像 Maven 这样的工具能正常工作。
使用方法 (注意: 本地覆盖全局。本地优先于全局)
添加一个新的 Java 环境(需要绝对路径)
jenv add<name> <path>
示例:jenv add jdk15 D:\Programme\Java\jdk-15.0.1
为当前会话更改 Java 版本
jenv use<name>
示例:jenv use jdk15
用于脚本的环境变量:
—PowerShell:$ENV:JENVUSE="jdk17"
—CMD/BATCH:set "JENVUSE=jdk17"
清除当前会话的 Java 版本
jenv use remove
示例:jenv use remove
用于脚本的环境变量:
—PowerShell:$ENV:JENVUSE=$null
—CMD/BATCH:set "JENVUSE="
全局更改 Java 版本
jenv change<name>
示例:jenv change jdk15
在此文件夹中始终使用该 Java 版本
jenv local<name>
示例:jenv local jdk15
清除此文件夹的 Java 版本
jenv local remove
示例:jenv local remove
列出所有的 Java 环境
jenv list
示例:jenv list
从 JEnv 列表中移除现有的 JDK
jenv remove<name>
示例:jenv remove jdk15
启用 Java 目录中的 javac、javaw 或其他可执行文件
jenv link<Executable name>
示例:jenv link javac
卸载 jenv 并自动恢复你选择的 Java 版本
jenv uninstall<name>
示例:jenv uninstall jdk17
自动搜索要添加的 Java 版本
jenv autoscan [–yes|-y]?<path>?
示例:jenv autoscan "C:\Program Files\Java"
示例:jenv autoscan
// 将搜索整个系统
示例:jenv autoscan -y "C:\Program Files\Java"
// 将接受默认设置
工作原理
此脚本创建一个 java.bat 文件,该文件调用具有正确版本的 java.exe
当 PowerShell 脚本更改环境变量时,它们会被导出到临时文件并由批处理文件应用
为 PowerShell 脚本添加了一个附加参数 “–output” 别名 “-o”,将为批处理创建临时文件。见下图
SystemEnvironmentVariablesHirachyShell
SystemEnvironmentVariablesHirachyPowerShell PNG
- 本文作者:scwang90
- 本文链接:https://blog.scwang90.cn/2024/05/20/version-manager-jenv/index.html
- 版权声明:本分享所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!