JDK环境变量配置、版本切换及安装后失效问题解决

一、Java环境变量配置选系统变量还是用户变量?

建议将其配置在系统变量中,因为用户变量仅在当前登录的用户下生效。

二、环境变量的配置方法

1. 首先下载JDK

JDK是Java开发者不可或缺的工具包,它涵盖了从编写、编译到调试和运行Java程序所需的全部功能。
JDK包含JRE,JRE即Java运行时环境,而JRE又包含JVM(Java虚拟机,其作用是将字节码转换成机器码,并在操作系统上运行)。
JDK下载官网

2. JDK的安装

需留意:
从JDK 9版本开始,JRE的概念被整合到了JDK之中。在此之前,JDK和JRE是作为两个独立的组件存在的。自JDK 9起,Java平台把JRE的功能融入到了JDK里,开发者只需安装JDK就能同时获取开发和运行Java应用程序所需的所有工具与库。
具体而言,从JDK 9开始,不再单独提供JRE,用户安装JDK时就自动拥有了运行Java应用程序的环境。这种设计简化了安装流程,让开发和运行Java程序更为便捷。
也就是说,JDK8不仅要安装JDK,还得安装JRE。
JDK的默认安装路径是C:\Program Files\Java\。
JDK8安装路径示例
JDK17只需安装JDK即可。
JDK17安装路径示例
安装时可以选择JDK的安装路径,在JDK8之前最好把JDK和JRE安装在同一个目录下。

💥3. 环境变量的配置

首先打开环境变量,可以通过在搜索框中搜索“环境变量”来实现。
打开环境变量的搜索示例
或者通过Win+R组合键打开运行输入框,输入“sysdm.cpl”并回车,会打开“系统属性”对话框,点击“高级”选项卡,再点击下方的“环境变量”按钮,就能进入编辑系统变量的界面。
系统属性高级选项卡
环境变量按钮位置

3.1 JAVA_HOME变量

在系统变量中新建JAVA_HOME变量,其变量值为JDK的安装路径。
JAVA_HOME变量创建示例

3.2 Path变量

编辑Path变量时,其显示可能不是列表形式而是一行,这不利于配置环境变量。其实很简单,对于大部分使用Win10 64位系统的用户,只需在Path变量值的最前面加上C:\Windows\System64;,这样就能更直观地查看配置的环境变量。
Path变量编辑示例
之后要配置bin和jre的路径,如果Path变量值不是列表形式,需要用;进行分割,列表形式会自动通过;分割变量值,就不需要额外加;了。

--变量名 Path
--变量值 %JAVA_HOME%\bin %JAVA_HOME%\jre\bin
3.3 ClassPath变量

CLASSPATH是一个环境变量,它告知Java虚拟机(JVM)和Java编译器(javac)到哪里去查找类文件和库,其配置会影响Java应用程序的运行和编译。
新建变量:
ClassPath变量创建示例

--变量名 ClassPath或者CLASSPATH 
--变量值 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 

各部分含义:
1. .: 代表当前目录。通过包含.,Java会在当前工作目录中查找类文件,这是常见配置,方便开发者在当前目录直接运行Java程序。
2. %JAVA_HOME%\lib: %JAVA_HOME%是指向Java安装目录的环境变量,%JAVA_HOME%\lib指向Java的库文件夹,包含Java程序运行所需的核心类库。
3. %JAVA_HOME%\lib\tools.jar:这个JAR文件包含Java开发工具的类,包括编译器(javac)等工具的实现,在使用某些开发工具和IDE(如Eclipse或NetBeans)时通常是必需的。
ClassPath变量配置示例

三、验证配置是否成功

通过Win+R组合键打开命令行窗口,输入cmd并回车。输入javac,若出现相关编译信息则说明有一定基础配置。输入java -version查看JDK版本,若能正确显示版本则表示配置成功。
java -version验证示例

四、切换JDK版本的方法

只需修改JAVA_HOME变量,将其指向要切换的JDK安装路径即可。不过每次都手动修改比较麻烦,我们可以为每个JDK维护独属于它们的JAVA_HOME变量,比如将JDK8对应的命名为JAVA_HOME8,JDK17对应的命名为JAVA_HOME17,然后让JAVA_HOME变量指向相应的变量名。因为%%中间可以读取变量名对应的值。
切换版本变量示例
切换版本后要重新启动命令行窗口,否则可能显示的还是原来的JDK版本,会误以为修改没有成功。

五、安装JDK17后自己配置的环境变量不生效的问题

问题描述

安装JDK8后配置了JDK8的路径,但安装JDK17后,系统的环境变量变成了JDK17的,没修改环境变量配置却自动改变了。

原因

JDK17安装时会自动配置环境变量,导致其配置的环境变量优先级高于我们自己配置的,从而使得我们自己配置的环境变量无法生效。JDK运行时查找环境变量的顺序是:
1. C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个文件;
2. Path变量中安装后JDK配置的环境变量C:\ProgramData\Oracle\Java\javapath;
3. 自己配置的环境变量。

解决方案

  1. 删除C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个文件;
  2. 删除环境变量Path中C:\ProgramData\Oracle\Java\javapath的配置,或者将自己配置的环境变量移到JDK生成的环境变量之上以改变优先级。
    环境变量调整示例

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/12724.html

(0)
LomuLomu
上一篇 2025 年 7 月 3 日
下一篇 2025 年 7 月 3 日

相关推荐

  • 2025年最新DataGrip永久破解教程(附激活码/注册码)🔥

    适用于JetBrains全家桶(IDEA、PyCharm、DataGrip、Golang等)的终极破解方案!💯 先给大家看看最新破解成果✨,有效期直接拉到2099年,简直不要太爽! 下面将用详细的图文教程,手把手教你如何永久激活DataGrip。这个方法同样适用于旧版本哦~无论是Windows、Mac还是Linux系统,统统搞定!🎉 第一步:下载DataGr…

    DataGrip激活码 2025 年 6 月 13 日
    28200
  • 深度解析:Java多线程上下文管理中ThreadLocal的原理与应用

    文章标题: 深入剖析:Java多线程上下文管理里ThreadLocal的原理与应用 文章内容: 目录 一、ThreadLocal基础认知与回顾剖析 (一)ThreadLocal的原理阐述 (二)既然ThreadLocalMap的键是弱引用,GC之后键是否会变为null? (三)ThreadLocal中的内存泄漏状况及JDK的处理办法 (四)部分核心源码回顾 …

    2025 年 7 月 21 日
    8200
  • 使用Docker部署的基于binlog实现Mysql8

    概念 MySQL 基于 Binlog 的主从复制(Master-Slave Replication)是 MySQL 数据库中实现数据复制的一种机制。在这种复制模式下,主库(Master)记录所有对数据库的修改操作(如 INSERT、UPDATE、DELETE 等)到 二进制日志(Binlog) ,从库(Slave)则读取这些日志并执行相同的操作,从而保持与主…

    未分类 2025 年 1 月 13 日
    37300
  • DataGrip破解是否影响原有配置?实测无影响!

    本教程适用于IDEA、PyCharm、DataGrip、Goland等,支持Jetbrains全家桶! 废话不多说,先上最新版本破解成功的截图,如下,可以看到已经成功破解到 2099 年辣,舒服! 接下来,我就将通过图文的方式, 来详细讲解如何激活DataGrip至 2099 年。 当然这个激活方法,同样适用于之前的旧版本! 不管你是什么操作系统,什么版本,…

    DataGrip激活码 2025 年 9 月 20 日
    4300
  • JDK、IDEA安装教程 IDEA安装2023年10月 最新最详细!免费、亲测成功!!!

    系列文章目录(Intellij IDEA2023年10月 最新教程) Java学习之IDEA的安装教程和使用 以下是第一章的内容:IntelliJ IDEA安装教程 文章目录 前言 准备工作 步骤(敲详细!!!) 前言 IDEA的安装是Java课程的入门,本人台式机于2023年7月份进行了系统重装,恰巧最近需要重新安装IDEA进行使用,借此机会给同学们分享我…

    未分类 2025 年 5 月 13 日
    20000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信