Windows 下多版本 JDK 配置教程:一键切换环境,告别路径冲突

Windows 下多版本 JDK 配置教程:一键切换环境,告别路径冲突

 

在日常 Java 开发中,我们常常会遇到「不同项目依赖不同 JDK 版本」的场景 —— 比如老项目需要 JDK 8 兼容,新业务又要用到 JDK 25 的新特性。直接修改环境变量不仅繁琐,还容易出现版本冲突、命令找不到的问题。这篇教程会手把手教你在 Windows 系统中配置多个 JDK 版本,核心目标是:

  1. 让系统能正常识别并调用 JDK 25 的java/javac命令;
  2. 无需反复修改环境变量界面,一键切换 JDK 8 和 JDK 25;
  3. 从根源避免多版本 JDK 的路径冲突问题

 

一、下载并安装多版本 JDK

1.首先前往 Oracle 官网下载需要的 JDK 版本

目前开发中常用的版本有:

  • JDK 8(也常写作 jdk1.8,经典长期支持版本,兼容大部分老项目);
  • JDK 11、JDK 17、JDK 21/25(新一代长期支持版本,适配新特性开发)。

小建议:优先选择「自动安装版」(.exe 格式),比解压版更省心,无需手动配置解压路径。

2.下载后安装到独属的固定位置文件夹,这里安装到C:\jdk文件夹

一个文件夹是C:\jdk\jdk8

一个文件夹是C:\jdk\jdk21

3.先安装 jdk 8,再安装jdk 21

安装时修改上述自定义路径

 

4.配置系统环境变量

步骤 1:新增 JDK 版本专属变量(方便切换):

  • 新建变量:JAVA_8_HOME,值填 JDK 8 的安装路径(比如C:\jdk\jdk8 );
  • 新建变量:JAVA_21_HOME,值填 JDK 21 的安装路径(比如 C:\jdk\jdk21);

步骤 2:修改 / 新建 JAVA_HOME(核心切换变量):

  • 若没有 JAVA_HOME,新建

若已有 JAVA_HOME,修改它的值为%JAVA_25_HOME%  或者%JAVA_8_HOME%都可

步骤 3:确保 PATH 里的 Java 路径是 “动态的”

  • 找到系统变量中的 PATH 变量,编辑,确保里面有 %JAVA_HOME%\bin(优先级高,但最好不要放到前三个之前),删掉原来直接写死的 JDK 8 路径(比如 C:\ProgramFiles\Java\jdk1.8.0_xxx\bin`);

注意!!配置完成后环境变量的三个界面都要点击确定

 

5.验证配置是否成功

打开新的命令提示符(cmd),输入命令验证:

 # 查看当前使用的 JDK 版本  java -version  # 查看编译器版本(javac 只在 JDK 里有,JRE 没有)  javac -version

  • 若显示 java version "25.x.x",说明 JDK 25 配置成功;
  • 若显示 java version "1.8.0_xxx",说明当前用的是 JDK 8 

6.快速切换 JDK 版本(不用改环境变量界面)

步骤 1:显示文件扩展名

打开「此电脑」→ 点击顶部「查看」选项卡;勾选「文件扩展名」

步骤 2:创建「切换到 JDK 8.bat」

  • 在桌面空白处右键 →「新建」→「文本文档」;
  • 重命名该文件为 切换到 JDK8.bat注意:后缀是.bat,不是.txt,改名时会提示 “更改扩展名可能导致文件不可用”,点击「是」);
  • 双击打开这个 .bat 文件(用记事本打开),复制粘贴以下内容: @echo off  :: 关闭命令回显,让输出更干净  :: 永久修改系统级 JAVA_HOME 为 JDK 8  setx JAVA_HOME "%JAVA_8_HOME%" /m  :: 提示用户切换结果  echo ======================================  echo 已将系统 JAVA_HOME 切换为 JDK 8!  echo 注意:需关闭所有已打开的 CMD/IDE,重新打开才生效!  echo ======================================  :: 暂停窗口,让用户看到提示  pause  ​
  • 点击记事本「文件」→「另存为」(编码选「ANSI」,避免中文乱码)替换原文本。

步骤 3:创建「切换到 JDK 21.bat」

  • 重复步骤 2 的 1-2:在桌面新建文本文档,重命名为 切换到 JDK 25.bat(后缀.bat);
  • 双击打开,复制粘贴以下内容: @echo off  :: 永久修改系统级 JAVA_HOME 为 JDK 25  setx JAVA_HOME "%JAVA_25_HOME%" /m  :: 提示用户切换结果  echo ======================================  echo 已将系统 JAVA_HOME 切换为 JDK 25!  echo 注意:需关闭所有已打开的 CMD/IDE,重新打开才生效!  echo ======================================  :: 暂停窗口,让用户看到提示  pause
  • 点击记事本「文件」→「另存为」(编码选「ANSI」,避免中文乱码)覆盖原文本。 

7.以管理员身份运行脚本

脚本内代码setx /m 是修改系统级环境变量,需要管理员权限,否则会报错:

  • 右键点击桌面的「切换到 JDK 25.bat」→「以管理员身份运行」;
  • 按任意键关闭窗口即可。

会弹出命令行窗口,显示:

8.验证切换结果

  • !关闭所有已打开的 CMD / 终端 / IDE*(旧窗口会缓存环境变量,修改不生效);
  • 重新打开一个新的 CMD(普通身份即可,不用管理员);
    • 原因:JAVA_8_HOME/JAVA_25_HOME 配置错误,或路径里有空格 / 中文;
    • 解决:
      1. 重新检查环境变量里的 JAVA_8_HOME/JAVA_25_HOME,确保路径是 JDK 根目录(比如 C:\Program Files\Java\jdk-25,不是 C:\Program Files\Java\jdk-25\bin);
      2. 若路径有空格(比如 Program Files),可以给路径加引号,比如把脚本里的 %JAVA_8_HOME% 改成 "C:\Program Files\Java\jdk1.8.0_202"
    • 原因:没有以管理员身份运行脚本;
    • 解决:右键脚本 →「以管理员身份运行」。
    • 原因:没关闭旧 CMD/IDE,或 PATH%JAVA_HOME%\bin 优先级不够;
    • 解决:
      1. 关闭所有 CMD/IDE,重新打开;
      2. 检查 PATH 变量,把 %JAVA_HOME%\bin 拖到最顶部。
    • 原因:记事本保存时编码不是 ANSI;
    • 解决:打开脚本 →「文件」→「另存为」→ 编码选「ANSI」→ 保存。

输入以下命令验证: # 查看 Java 运行时版本  java -version  # 查看 Java 编译器版本(JDK 特有,验证是否是完整 JDK)  javac -version

常见问题 & 解决方法

问题 1:运行脚本提示「找不到指定的路径」问题 2:运行脚本提示「拒绝访问」问题 3:验证时还是旧版本问题 4:脚本里的中文乱码

 

 

 

Read more

企业级招聘数据采集实战:基于 Bright Data AI Studio 的自动化爬虫方案

企业级招聘数据采集实战:基于 Bright Data AI Studio 的自动化爬虫方案

🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 一、 引言 二、Bright Data AI Studio 概览 2.1 AI Studio 是什么 2.2 AI Studio 的核心能力拆解 2.3 为什么说 AI Studio 更适合企业级场景 三、实战部分 3.1 实战目标与采集场景说明 3.2 准备工作 3.3 采集数据 3.4 扩展采集任务

By Ne0inhk
AI生成系统架构图 告别系统架构图制作焦虑!AI一键生成,小白也能秒变高手

AI生成系统架构图 告别系统架构图制作焦虑!AI一键生成,小白也能秒变高手

类别一: 类别二: 类别三 工具地址:https://draw.anqstar.com/ 一、技术背景与问题引入 1.1 计算机专业学业场景的架构图需求 对于计算机相关专业的大学生而言,系统架构图是学业过程中绕不开的重要元素。无论是数据结构课程设计中的模块交互展示、操作系统课程作业的进程调度流程梳理,还是毕业设计中完整系统的分层架构呈现,架构图都承担着“可视化技术逻辑”的核心作用。一份清晰、规范的架构图,不仅能让作业或论文的技术方案更具说服力,更能直观体现开发者对系统设计的理解深度,成为评分中的加分项。 1.2 传统架构图绘制的痛点与困境 然而,传统的架构图绘制方式,往往让不少学生陷入困扰。一方面,专业的绘图工具(如Visio、DrawIO、ProcessOn)存在一定的学习成本,对于初次使用的学生而言,需要花费大量时间熟悉拖拽操作、组件布局、连接线设置等基础功能,甚至可能因为工具操作不熟练导致绘图效率低下;另一方面,架构图的规范性难以把控,不同课程、不同导师对架构图的排版风格、组件命名、层级划分要求各异,学生需要反复修改调整,

By Ne0inhk
【AI大模型前沿】TxGemma:谷歌推出的高效药物研发大模型,临床试验预测准确率超90%

【AI大模型前沿】TxGemma:谷歌推出的高效药物研发大模型,临床试验预测准确率超90%

系列篇章💥 No.文章1【AI大模型前沿】深度剖析瑞智病理大模型 RuiPath:如何革新癌症病理诊断技术2【AI大模型前沿】清华大学 CLAMP-3:多模态技术引领音乐检索新潮流3【AI大模型前沿】浙大携手阿里推出HealthGPT:医学视觉语言大模型助力智能医疗新突破4【AI大模型前沿】阿里 QwQ-32B:320 亿参数推理大模型,性能比肩 DeepSeek-R1,免费开源5【AI大模型前沿】TRELLIS:微软、清华、中科大联合推出的高质量3D生成模型6【AI大模型前沿】Migician:清华、北大、华科联手打造的多图像定位大模型,一键解决安防监控与自动驾驶难题7【AI大模型前沿】DeepSeek-V3-0324:AI 模型的全面升级与技术突破8【AI大模型前沿】BioMedGPT-R1:清华联合水木分子打造的多模态生物医药大模型,开启智能研发新纪元9【AI大模型前沿】DiffRhythm:西北工业大学打造的10秒铸就完整歌曲的AI歌曲生成模型10【AI大模型前沿】R1-Omni:阿里开源全模态情感识别与强化学习的创新结合11【AI大模型前沿】Qwen2.5-Omni:

By Ne0inhk
网络安全:零暴露公网IP访问本地AI服务的一些方法分享,保障数据隐私!

网络安全:零暴露公网IP访问本地AI服务的一些方法分享,保障数据隐私!

如果我们选择本地部署AI模型(如LLaMA、Stable Diffusion)的核心动机之一是对数据隐私的绝对控制! 但当我们需要从外部网络访问这些服务时,就面临两难选择:要么牺牲便利性(只能在内网使用),要么牺牲安全性(将服务暴露至公网)。我这边介绍一种折中的解决方案,实现无需公网IP、零端口暴露的远程安全访问。 公网暴露的潜在威胁 将本地服务的端口通过路由器映射到公网(Port Forwarding),是常见的“暴力”解决方案。但这带来了显著风险: 1. 端口扫描与暴力破解:你的服务IP和端口会暴露在互联网的自动化扫描工具下,可能遭遇持续的登录尝试或漏洞利用攻击。 2. 服务漏洞利用:如果AI服务的Web界面或API存在未修复的漏洞,攻击者可以直接利用。 3. 家庭网络边界被突破:一旦攻击者通过该服务入侵成功,可能进一步渗透到家庭网络中的其他设备。 怎么解决:基于加密隧道的网络隐身 思路是:不让本地服务在公网“露面”,而是让外部访问者通过一条加密的“专属通道”直接进入内网。这可以通过基于零信任网络的P2P VPN工具实现。 具体实现:以Tailscale/Z

By Ne0inhk