Win搭建:JDK(Jenv)
第一章 Jenv 安装与配置
1.1 Jenv 下载
官方开源地址(https://github.com/FelixSelter/JEnv-for-Windows)是最权威的来源。
下载方式:进入仓库后,点击“Releases”选择对应 Windows 版本的压缩包(如 zip 格式)。
1.2 Jenv 环境变量配置
配置入口:系统属性→高级→环境变量→系统变量→Path
具体操作步骤:右键“此电脑”→选择“属性”→点击左侧“高级系统设置”→在“高级”选项卡中点击“环境变量”→在“系统变量”区域找到“Path”变量并双击。此路径为系统级环境变量配置入口,设置后对所有用户生效。Path 变量值添加:Jenv 实际解压路径
在 Path 变量编辑窗口中,点击“新建”,输入 Jenv 解压后的根目录(如“D:\Admin\JEnv”)。配置注意事项:建议将 Jenv 路径移至 Path 列表中其他 Java 相关路径的最上方
Windows 系统在执行命令时,会按 Path 列表的顺序查找可执行文件。若 Jenv 路径位于其他 Java 相关路径(如已安装的 JDK 目录)之后,系统可能优先调用其他路径的命令,导致 Jenv 无法正常生效。因此,需选中 Jenv 路径,点击“上移”至列表顶部,确保优先级最高。
1.3 Jenv 安装验证
验证命令:在 CMD 命令行输入
jenv -v
打开 CMD 窗口(按下 Win+R,输入“cmd”后回车),输入命令后回车。该命令用于查询 Jenv 版本及加载信息,是验证安装是否成功的核心步骤。验证结果:若显示模块加载、函数导出/导入等详细信息则成功
成功时,命令行会输出 Jenv 的版本号、加载的模块(如“jenv.core”“jenv.commands”)、导出的函数(如“add”“use”等命令)等信息,表明 Jenv 已正确加载并可正常使用。异常处理:无返回值时需重启电脑后重新验证
若输入命令后无任何输出,可能是环境变量未生效(Windows 有时需重启才能加载新的 Path 配置)。重启电脑后,再次打开 CMD 执行jenv -v,若仍无响应,需检查 Path 变量是否正确添加 Jenv 路径,或重新解压 Jenv 并重复配置步骤。
第二章 JDK 安装与配置
2.1 JDK 下载
2.1.1 官方下载地址:Oracle 官网(Windows 平台)
Oracle 官网(https://www.oracle.com/java/technologies/downloads/)是 JDK 最权威的来源,提供各版本的官方安装包。下载步骤:进入官网后,选择对应版本(如 JDK 8、17、21),点击“Windows x64”对应的下载链接,需登录 Oracle 账号(免费注册)后即可下载。
注意:Oracle JDK 部分版本需遵守商用许可协议,非商业用途免费。
2.1.2 支持版本与文件类型
- JDK 8:提供“jdk-8u361-windows-x64.exe”(安装版,会自动配置部分环境变量)和“jdk-8u431-windows-x64.zip”(解压版,需手动配置),适合对兼容性要求高的旧项目(如依赖 JDK 8 特定 API 的应用)。
- JDK 17:包含“zip”“exe”“msi”三种格式,其中“msi”为 Windows 安装包格式,支持通过安装向导配置;“zip”为解压版,灵活性更高。JDK 17 是长期支持(LTS)版本,适合企业级应用。
- JDK 21:提供解压版(如“jdk-21.0.2”),作为最新 LTS 版本,支持更多新特性(如虚拟线程、密封类等),适合开发新项目。
2.2 JDK 环境变量配置
JAVA_HOME 配置
- 变量名:固定为“JAVA_HOME”(大小写敏感,需严格大写),是多数 Java 工具(如 Maven、Tomcat)识别 JDK 路径的默认变量。
- 变量值示例:需填写 JDK 解压后的根目录(如“D:\Admin\Env\JDK\jdk-21.0.2”)。若后续通过 Jenv 切换版本,Jenv 会自动更新 JAVA_HOME 指向当前激活的 JDK 路径。
CLASSPATH 配置
- 变量名:固定为“CLASSPATH”,用于指定 Java 虚拟机(JVM)加载类文件的路径。
- 变量值:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar。其中,“.”表示当前目录(优先加载当前目录的类文件);“%JAVA_HOME%\lib”包含 JDK 核心类库;“tools.jar”是编译工具(如 javac)依赖的类库(JDK 9+ 后部分版本可能移除该文件,可忽略)。
Path 变量补充
- 新增内容 1:“%JAVA_HOME%\bin”:包含 java(运行字节码)、javac(编译源码)等核心可执行文件,添加后可在命令行直接调用。
- 新增内容 2:“%JAVA_HOME%\jre\bin”:JDK 8 及之前版本包含 JRE(Java 运行时环境),该路径用于运行 Java 程序;JDK 9+ 后 JRE 已集成到 JDK 中,此路径可省略,但为兼容性建议保留。
第三章 Jenv 常用命令
3.1 JDK 管理命令
3.1.1 添加 JDK:
jenv add <name> <path>(需绝对路径)- 功能:将本地 JDK 路径注册到 Jenv 管理列表,
<name>为自定义别名(建议用版本号,如“1.8”“17”),<path>为 JDK 解压根目录的绝对路径(不可为相对路径,否则 Jenv 无法识别)。 - 示例 1:
jenv add jdk15 D:\Programme\Java\jdk-15.0.1:为 JDK 15 注册别名为“jdk15”。 - 示例 2:
jenv add 1.8 "D:\environment\java\jdk\jdk1.8.0_431":路径含空格时需用双引号包裹,别名为“1.8”更直观。 - 示例 3:
jenv add 17 "D:\environment\java\jdk\jdk-17.0.13":为 JDK 17 注册别名为“17”。
- 功能:将本地 JDK 路径注册到 Jenv 管理列表,
3.1.2 删除 JDK:
jenv remove <name>- 功能:从 Jenv 管理列表中移除指定别名的 JDK,不会删除本地 JDK 文件(仅解除管理关联)。
- 示例:
jenv remove jdk15:移除别名为“jdk15”的 JDK,后续无法通过jenv use等命令切换到该版本。
3.1.3 自动扫描 JDK:
jenv autoscan [--yes|-y]?<path>?- 功能:自动扫描指定路径(或整个系统)中的 JDK 并添加到 Jenv 管理列表,无需手动执行
add命令。 - 示例 1:
jenv autoscan "C:\Program Files\Java":仅扫描“C:\Program Files\Java”目录下的 JDK(通常是安装版 JDK 的默认路径)。 - 示例 2:
jenv autoscan:扫描整个系统的磁盘,耗时较长,但可发现所有已安装的 JDK。 - 示例 3:
jenv autoscan -y "C:\Program Files\Java":添加-y参数后,自动确认扫描到的 JDK(无需手动输入“yes”确认),适合批量添加。
- 功能:自动扫描指定路径(或整个系统)中的 JDK 并添加到 Jenv 管理列表,无需手动执行
3.2 版本切换命令
3.2.1 会话级切换(仅当前 CMD 窗口有效)
- 基础命令:
jenv use <name>:切换当前 CMD 窗口的 JDK 版本,关闭窗口后失效,适合临时测试不同版本。 - 示例:
jenv use jdk15:当前窗口临时使用别名为“jdk15”的版本。 - 脚本环境变量:
- PowerShell:
$ENV:JENVUSE="jdk17":在 PowerShell 脚本中通过设置环境变量指定版本,无需手动执行use命令。 - CMD/BATCH:
set "JENVUSE=jdk17":在批处理脚本中设置,效果同 PowerShell。
- PowerShell:
- 基础命令:
3.2.2 全局切换(系统级生效):
jenv change <name>- 功能:修改系统级环境变量,所有新打开的命令行窗口、应用程序均使用该版本,适合设置默认 JDK。
- 示例:
jenv change jdk15:系统全局默认使用“jdk15”,需重启已打开的窗口生效。
3.2.3 本地目录切换(当前目录及子目录有效):
jenv local <name>- 功能:在当前目录生成
.jenv配置文件,指定该目录及所有子目录使用的 JDK 版本,优先级高于全局和会话级设置(适合项目级版本隔离)。 - 示例:
jenv local jdk15:当前项目目录及子目录默认使用“jdk15”,进入该目录的命令行窗口会自动切换版本。
- 功能:在当前目录生成
3.3 版本查看与清除命令
3.3.1 查看所有 JDK:
jenv list- 功能:列出 Jenv 已管理的所有 JDK 别名及对应路径,标注当前激活的版本(通常用“*”标识)。例如:
* 1.8 (D:\environment\java\jdk\jdk1.8.0_431) 17 (D:\environment\java\jdk\jdk-17.0.13) jdk15 (D:\Programme\Java\jdk-15.0.1)
- 功能:列出 Jenv 已管理的所有 JDK 别名及对应路径,标注当前激活的版本(通常用“*”标识)。例如:
3.3.2 查看当前 JDK 版本:
java -version- 功能:通过 Java 自带命令验证当前生效的版本,输出内容包含版本号、虚拟机信息等。例如 JDK 17 可能显示:
java version "17.0.13" 2024-04-16 LTS Java(TM) SE Runtime Environment (build 17.0.13+11-LTS-2513) Java HotSpot(TM) 64-Bit Server VM (build 17.0.13+11-LTS-2513, mixed mode, sharing)
- 功能:通过 Java 自带命令验证当前生效的版本,输出内容包含版本号、虚拟机信息等。例如 JDK 17 可能显示:
3.3.3 清除会话级版本
- 基础命令:
jenv use remove:取消当前 CMD 窗口的会话级版本设置,恢复为全局或本地目录版本。 - 脚本环境变量:
- PowerShell:
$ENV:JENVUSE=$null:清除 PowerShell 中的会话级变量。 - CMD/BATCH:
set "JENVUSE=":清除 CMD 中的会话级变量。
- PowerShell:
- 基础命令:
3.3.4 清除本地目录版本:
jenv local remove- 功能:删除当前目录的
.jenv配置文件,取消该目录及子目录的版本限制,恢复为全局或会话级版本。 - 示例:
jenv local remove:执行后,当前目录进入的命令行窗口不再强制使用本地指定版本。
- 功能:删除当前目录的
3.4 其他实用命令
3.4.1 启用 Java 可执行文件:
jenv link <Executable name>- 功能:关联 Java 相关可执行文件(如 javac、javaw、jar 等),确保 Jenv 切换版本时,这些命令能正确指向当前激活的 JDK 路径。
- 示例:
jenv link javac:关联编译命令 javac,执行后javac -version会显示当前 JDK 的编译器版本。
3.4.2 卸载 Jenv(慎用,自动恢复指定 Java 版本):
jenv 卸载 <name>- 功能:移除 Jenv 的环境变量配置,并将系统默认 JDK 恢复为
<name>指定的版本(需是 Jenv 已管理的版本)。 - 示例:
jenv 卸载 jdk17:卸载 Jenv 后,系统全局使用“jdk17”,适合不再需要多版本管理的场景。 - 注意:卸载后需重启电脑使配置生效,且原 Jenv 管理的其他版本需手动配置环境变量才能使用。
- 功能:移除 Jenv 的环境变量配置,并将系统默认 JDK 恢复为