jdk环境变量配置切换jdk版本及安装jdk后环境变量不生效问题解决办法

 更新时间:2024年12月23日 10:59:36   作者:qq_52349334  
这篇文章主要介绍了jdk环境变量配置切换jdk版本及安装jdk后环境变量不生效问题解决办法,包括配置JAVA_HOME、Path和CLASSPATH,以及如何验证配置是否成功,文章还讲解了如何切换JDK版本,并解决了安装新JDK后环境变量配置不生效的问题,需要的朋友可以参考下

一、java环境变量配置是安在系统变量好还是用户变量好?

建议安在系统变量,因为用户变量只会在本用户生效。

二、如何配置环境变量

1.首先去下载jdk

JDK 是 Java 开发者必备的工具包,提供了从编写、编译到调试和运行 Java 程序所需的所有功能。

jdk包含jre,jre即 Java Runtime Environment,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:\Porgram File\Java\

JDK17则只需要安装jdk即可

在安装时可以选择jdk的安装路径,jdk8之前最好把jdk和jre安装在同一目录下。

3.环境变量配置

首先打开环境变量,可以直接在搜索框中搜索环境变量

3.1 JAVA_HOME变量

在系统变量中新建JAVA_HOME变量,变量值为jdk安装路径

3.2 Path变量

在编辑Path变量时我们的Path变量显示可能不是列表,而是显示一行,这样非常不方便我们进行环境变量的配置,其实非常简单,现在大部分人用的都是win10的64位的系统,只要在path变量值的最前面,加上C:\Windows\System64;即可。

这样就能很直观的查看配置的环境变量。

​配置bin和jre的路径,如果Path变量值不是列表形式,还需要使用;进行分割,列表形式会通过;对变量值进行分割,也就不需要加;了。

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

3.3 ClassPath变量

CLASSPATH 是一个环境变量,它告诉 Java 虚拟机 (JVM) 和 Java 编译器 (javac) 从哪里查找类文件和库。配置 CLASSPATH 的方式可以影响 Java 应用程序的运行和编译。

新建变量

--变量名 
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 类库,
这些库是 Java 程序运行所需的核心类 
3、%JAVA_HOME%\lib\tools.jar: 这个 JAR 文件包含了 Java 开发工具的类,
包括编译器 (javac) 和其他一些工具的实现。它在使用某些开发工具和 IDE(例如,Eclipse 或 NetBeans)时通常是必需的。

三、验证是否配置成功

win+R输入cmd打开命令行窗口

输入javac

​输入java -version 查看jdk版本是否匹配

出现版本即成功了。

四、如何切换jdk版本

只需要修改JAVA_HOME变量即可,将该变量指向要切换的安装的jdk的路径即可。

但是这样每次都需要去修改路径,我们还是觉得麻烦,我们可以为每个jdk维护一个独属于他们的JAVA_HOME变量,然后将他们的值替换JAVA_HOME变量即可。

例如jdk8就命名为JAVA_HOME8

jdk17就命名为JAVA_HOME17

然后将JAVA_HOME的变量值去指向JAVA_HOME8,这样就能实现同样的效果

%%中间可以读取变量名对应的值。

​然后使用java -version查看当前版本

💥注意:切换版本后要重新启动命令行窗口,否则显示的还是原来的jdk版本会误以为修改不成功。

五、安装jdk17后,自己配置的环境变量配置不生效

问题描述:

安装jdk8后,环境变量配置的jdk8的路径,但是在安装jdk17后,系统的环境变量变成了jdk17,没有修改环境变量的配置但是确自动修改了环境变量。

原因:

jdk17在安装的时候会自动配置环境变量,也就是说jdk配置的环境的变量的优先级高于我们自己配置的环境优先级了。因此导致自己配置的环境变量无法生效。

jdk在运行时寻找环境变量配置顺序

  • C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个文件
  • Path变量中的在安装后jdk配置的环境变量C:\ProgramData\Oracle\Java\javapath
  • 自己配置的环境变量

解决方案:

  • 删除C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个文件
  • 删除环境变量Path中C:\ProgramData\Oracle\Java\javapath的配置或者将自己配置的环境变量移至jdk生成的环境变量之上即可。也就是改变优先级。

总结 

到此这篇关于jdk环境变量配置切换jdk版本及安装jdk后环境变量不生效问题解决办法的文章就介绍到这了,更多相关jdk环境变量配置切换jdk版本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java集成和使用dl4j实现通过扫描图片识别快递单信息

    Java集成和使用dl4j实现通过扫描图片识别快递单信息

    这篇文章主要为大家详细介绍了Java如何使用DL4J搭建一个简单的图像识别模型,并将其集成到Spring Boot后端中从而实现通过扫描图片识别快递单信息,需要的可以参考下
    2024-12-12
  • 详解Reactor中Context的用法

    详解Reactor中Context的用法

    在Reactor中提供了Context来替代ThreadLocal,可以实现一个跨线程的共享变量的透明方式。本文主要为大家介绍了Context的用法的用法,感兴趣的可以了解一下
    2023-02-02
  • 基于JavaMail的Java实现简单邮件发送功能

    基于JavaMail的Java实现简单邮件发送功能

    这篇文章主要为大家详细介绍了基于JavaMail的Java实现简单邮件发送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • Java中的gateway自定义过滤器详解

    Java中的gateway自定义过滤器详解

    这篇文章主要介绍了Java中的gateway自定义过滤器详解,过滤器是指gateway在路由过程中(A地址路由到B地址)生效进行过滤操作的,所有首先你得先配一个地址路由,本文提供了部分实现代码,需要的朋友可以参考下
    2023-11-11
  • SpringBoot 嵌入式web容器的启动原理详解

    SpringBoot 嵌入式web容器的启动原理详解

    这篇文章主要介绍了SpringBoot 嵌入式web容器的启动原理详解,具有很好的参考价值,希望对大家有所帮助。
    2021-11-11
  • Java实现自定义LinkedList类的示例代码

    Java实现自定义LinkedList类的示例代码

    LinkedList类跟ArrayList类不同,它通过指针以及结点的操作对链表进行增删改查。本文就来和大家分享下Java如何为实现自定义LinkedList类,需要的可以参考一下
    2022-08-08
  • JAVA纯代码导出PDF文件实现方式

    JAVA纯代码导出PDF文件实现方式

    本文介绍了作者通过突发奇想发布了生成PDF的博客,最初,作者通过将Word文件转换为PDF文件实现导出PDF功能,但效果不尽如人意,后来,作者尝试直接生成PDF文件,并修复了生成PDF时出现的小瑕疵,通过导入依赖、下载接口和下载方法的实现
    2025-01-01
  • idea中一键自动生成序列化serialVersionUID方式

    idea中一键自动生成序列化serialVersionUID方式

    这篇文章主要介绍了idea中一键自动生成序列化serialVersionUID方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • C++字符串的处理详解

    C++字符串的处理详解

    这篇文章主要介绍了C++ string字符串类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • mybatis中使用oracle关键字出错的解决方法

    mybatis中使用oracle关键字出错的解决方法

    这篇文章主要给大家介绍了关于mybatis中使用oracle关键字出错的解决方法,文中通过示例代码将解决的方法介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-08-08

最新评论