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

Python 3.12安装库报错

Python 3.12安装库报错

报错如下: AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'? 这是因为 Python 3.12 移除了对 pkgutil.ImpImporter 的支持,而某些库(例如 setuptools 或 numpy 的旧版本)依赖于旧的导入机制。 解决方案 1. 降级到兼容的 Python 版本 numpy 和一些旧的依赖库在 Python 3.12 下出现兼容性问题,建议使用 Python 3.11。 具体步骤: 重新安装项目依赖:

By Ne0inhk
基于python的电影推荐系统的设计与实现-附源码201341

基于python的电影推荐系统的设计与实现-附源码201341

摘 要 随着社会的快速发展和人们生活水平的不断提高,电影已逐渐成为人们生活的重要组成部分,用户能够获取 电影信息的渠道也随信息技术的广泛应用而增加。大量未经过滤的信息在展示给用户的同时,也淹没了用户真正感兴趣的信息。为了方便用户快速定位自己感兴趣的信息,个性化电影推荐系统应运而生。 本系统的前端界面涉及的技术主要有Django, HTML,jQuery等等,通过这些技术可以实现前端页面的美观和动态效果使之符合广大群众的审美观,后台主要使用的技术主要有Python编程语言,MySQL数据库,Ajax异步交互,根据Ajax异步模式的 电影推荐系统解决了传统 电影推荐方式中数据分析所带来的人力、物力和时间上的虚耗和交流深度的限定,这让交流的过程更快捷、准确、便利,同时完成 电影推荐系统的基本功能:用户管理、电影交流、电影信息、电影分类、电影评分等。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对电影推荐系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现电影推荐系统和部

By Ne0inhk
【翻译】IDAPython 官方教程|(一)IDAPython 入门指南

【翻译】IDAPython 官方教程|(一)IDAPython 入门指南

本文翻译自Getting Started | Hex-Rays Docs,该文档更新速度较快,上次更新还是在3个月之前。最新版本建议去官网查看或者连接其 MCP 进行查阅。该网站需要科学上网才能正常访问,因此不便国内学者进行研究,所以直接在博客中进行翻译。 未选择翻译分类,是因为 ZEEKLOG 中的翻译的大分类要求比较复杂,而且推流方面也很大的问题,检索不到,并且 tag 也会变得很丑,并非缺失版权意识而蓄意为之,请见谅。 本文由 Gemini 3.0 翻译,对目录结构多有整理(我觉得比官方整理得好),仅供学习交流使用,如有侵权请私联删除。 文章目录 * IDAPython 入门指南 * 1. 简介 * 1.1 本指南的结构 * 1.2 在哪里可以找到完整的示例库? * 2. 基础知识 * 2.1 常用模块 * 2.2

By Ne0inhk
Python从0到100(九十五):空洞卷积(Dilated Convolution)网络架构与PAMAP2数据集实验分析

Python从0到100(九十五):空洞卷积(Dilated Convolution)网络架构与PAMAP2数据集实验分析

前言:零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能相关知识,成为学业升学和工作就业的先行者! 【优惠信息】 • 新专栏订阅前500名享9.9元优惠 • 订阅量破500后价格上涨至19.9元 • 订阅本专栏可免费加入粉丝福利群,享受: - 所有问题解答 -专属福利领取 欢迎大家订阅专栏:零基础学Python:Python从0到100最新最全教程! 本文目录: * 一、空洞卷积的基础原理 * 1. 传统卷积的短板 * 2. 空洞卷积的巧妙之处 * 二、空洞卷积的架构 * 1. 输入层 * 2. 空洞卷积模块 * 2.1 空洞卷积层 * 2.2 批归一化和激活 * 3. 整体结构 * 三、代码实现详解

By Ne0inhk