当前位置: 首页 > news >正文

Windows JDK 多版本管理方案

Windows JDK 多版本管理方案

  • Windows JDK 多版本管理方案
    • 前言
    • 方案一:纯手动配置(原生环境变量切换)
      • 1. 配置三个 `JAVA_HOME`
      • 2. 配置 `Path` 变量
      • 3. 清理干扰路径(关键一步)
    • 方案二:使用 venv 工具(vng/jEnv / SDKMAN)
      • 推荐工具:`vng` (原 `jenv-for-windows`)
      • 现代选择:`SDKMAN!`
    • 💡 进阶避坑指南

Windows JDK 多版本管理方案

前言

在Windows系统中管理多个版本的JDK,核心思路是避免让多个JDK的路径同时写死在系统变量中,而是通过修改一个“中转变量”来实现一键切换。

以下是目前最主流、最优雅的两种管理方案:


方案一:纯手动配置(原生环境变量切换)

这是最基础、最透明的方法,不需要安装任何第三方工具。原理是利用 Windows 环境变量的引用机制。

1. 配置三个JAVA_HOME

打开系统环境变量设置(右键“此电脑” -> 属性 -> 高级系统设置 -> 环境变量),在系统变量中新建以下变量:

  • JAVA_HOME_8_291=C:\Program Files\Java\jdk1.8.0_291(你的JDK8u291实际路径)
  • JAVA_HOME_8_491=C:\Program Files\Java\jdk1.8.0_491(你的JDK8u491实际路径)
  • JAVA_HOME_17=C:\Program Files\Java\jdk-17(你的JDK17实际路径)

然后再新建一个总开关变量JAVA_HOME,让它去引用其中一个具体版本:

  • JAVA_HOME=%JAVA_HOME_8_291%(当前想用哪个,就改后面的数字)

2. 配置Path变量

在系统变量中找到Path,点击编辑。
新建一条记录,将其置于最顶端(非常重要,防止被其他软件自带的Java路径覆盖):

  • %JAVA_HOME%\bin

3. 清理干扰路径(关键一步)

很多时候切换失效,是因为某些软件(如 Oracle 或早期的 Java 安装包)在Path中自动添加了路径。检查并删除Path中类似的自带路径:

  • C:\Program Files\Common Files\Oracle\Java\javapath
  • C:\Program Files (x86)\Common Files\Oracle\Java\javapath

如何切换:
以后需要换版本时,只需把JAVA_HOME的值改成%JAVA_HOME_8%%JAVA_HOME_21%,保存后重新打开命令行终端(CMD 或 PowerShell),输入java -version即可完成切换。


方案二:使用 venv 工具(vng/jEnv / SDKMAN)

如果你嫌频繁点开“环境变量”窗口太麻烦,推荐使用专门的 Java 版本管理器,在命令行一行命令搞定。

推荐工具:vng(原jenv-for-windows)

这是一个专门为 Windows 编写的轻量级 Java 版本管理工具。

  1. 安装:下载并安装vng(可以直接在 GitHub 搜索jenv-for-windowsvng)。
    下载链接:JEnv-for-Windows

    解压到任一位置

    添加path环境变量

    验证版本提示因为 Windows 的 PowerShell 安全策略(Execution Policy) 默认比较严格,禁止在系统上运行未经数字签名的脚本文件,执行脚本修改一下 PowerShell 的执行策略即可

    Set-ExecutionPolicy-ExecutionPolicyRemoteSigned-ScopeCurrentUser

    再进入jenv运行以下命令来解除该脚本文件的锁定状态

    Unblock-File-Path"D:\Program Files\JEnv\src\jenv.ps1"

  2. 添加 JDK:

    jenv add 1.8 C:\Program Files\Java\jdk1.8.0_311 jenv add 17 C:\Program Files\Java\jdk-17
  3. 查看已添加的版本:

    jenv list
  4. 一键切换:

    jenv change17

现代选择:SDKMAN!

如果除了 JDK,你还需要管理 Maven、Gradle 等多种开发工具,在 Windows 11 上结合 WSL 或 Git Bash 使用SDKMAN!是极佳的选择。它支持直接在终端在线下载并管理几乎所有发行版的 JDK(如 Temurin, Oracle, Corretto)。


💡 进阶避坑指南

  1. IDE(如 IntelliJ IDEA / VS Code)不受系统全局 JDK 影响
    现在的现代 IDE 极其智能,它们允许你为每个项目单独指定 JDK 版本。即使你系统全局配的是 JDK 17,你在 IDEA 的Project Structure->SDKs中依然可以导入并使用 JDK 8。因此,如果只是为了应用开发,不一定非要折腾系统全局变量,直接在 IDE 里配置更安全。
  2. **构建工具(Maven/Gradle)会读取JAVA_HOME**
    如果你在命令行运行mvn clean package,Maven 会严格使用当前系统PathJAVA_HOME指向的 Java 版本。如果编译报错,记得先用java -version检查一下。

如果你在切换过程中遇到了版本“卡死”不变的情况,可以告诉我,这通常是Path变量的顺序问题。

http://www.jsqmd.com/news/1036959/

相关文章:

  • 如何用Godot Open RPG在7天内创建你的第一个完整角色扮演游戏
  • go java web开发 Java老手转Go开发:不是SpringBoot不香,是这玩意儿太爽了
  • Claude Opus-4.7 实测:视觉语义理解与分步推理协作新范式
  • ATmega329系列MCU选型、硬件设计与中断编程实战指南
  • 2026杭州靠谱工业产品设计机构排行:5家实力服务商盘点 - 起跑123
  • 论文初稿AI写作怎么写?4款工具,快速完成初稿 - 掌桥科研-AI论文写作
  • AWQ+ PagedAttention双剑合璧,开源LLM生产部署性能调优完全指南
  • 2026.6厦门市行业钻石回收门店公示:无损鉴定、市民评价双核验 - 开心测评
  • 2026华南GEO榜单TOP5横向对比 - 热点速览
  • 2026东莞钻石回收店铺测评对比,无隐形消费线上发图免费估价报价 - 名奢变现站
  • 9.三个修饰符
  • 2026海口品牌首饰回收门店实力排名测评:四大维度横向实测,本地变现避坑指南 - 薛定谔的梨花猫
  • 商业空间灯光选型,避开这四点比看参数更重要——五家商业照明品牌推荐 - 资讯速览
  • 如何快速掌握Azure Data Studio:面向新手的跨平台数据库管理完整指南
  • 闲置翡翠变现难?上禹竞,成都人都在找的靠谱渠道 - 奢品小当家
  • 【信息科学与工程学】【物理/化学和工程技术】汽车中的动力学
  • 深度解析:网易云音乐命令行客户端 MusicBox 的高效使用指南
  • 昇腾多机训练中HCCL通信问题的分析与解决
  • 2026兰州物流仓库快速堆积门生产厂 - 精选优质企业推荐官
  • 2026安徽省淮北市中考500分左右怎么办?冲刺高中补充方案最新发布 - 小张zc
  • 国内挖泥船生产企业排行:核心实力实测对比 - 起跑123
  • 7 款免安装无会员去水印完整实测,国内海外短视频两用工具 TOP7 清单 - 时时资讯
  • 2026年7月济南刑事辩护律师权威榜:刘向明专业实力,实战数据与用户口碑深度解析 - 十大排行榜推荐
  • 095、PCIE物理层测试模式:从信号眼图到误码率实战
  • Python作用域分类与LEGB规则详解
  • pong_Day 3:AI 对手球拍 + 计分系统 + 胜负判定
  • 2026甘肃电动卷闸门定制安装多少钱 - 精选优质企业推荐官
  • Win11Debloat终极指南:一键清理Windows系统臃肿的免费工具
  • 基于Python的终端快速SSH连接工具
  • 2026年建站服务哪家靠谱?高口碑商家汇总! - FaiscoJeff