超详细WindowsJDK1.8与JDK11版本切换教程

2023-05-16

文章目录

    • 一、JDK生效原理
    • 二、安装配置JDK11
    • 三、切换JDK11版本
    • 四、查看切换JDK11版本是否成功
    • 五、再次切换至JDK8版本
    • 六、查看切换JDK8版本是否成功

一、JDK生效原理

想必大家都在为如何流畅的切换JDK版本问题而来,那么在此篇文章开始之前,首先我们来思考一下这样一个问题:系统是如何使得我们安装的JDK生效的?

聪明的你一定想到了,是的,要想使得我们安装的JDK生效,我们需要配置它的环境变量,让系统知道我们已经安装了JDK并且已经可以使用。

我们大家一般配置环境变量都是先新建一个系统变量JAVA_HOME,而JAVA_HOME所表示的路径为我们安装jdk的路径(不包含bin目录)即:
在这里插入图片描述


之后我们会在Path系统变量中新建环境变量%JAVA_HOME%\bin即:
在这里插入图片描述


那么这些环境变量和JDK生效有什么关系呢?我们来看bin目录下到底有什么内容:

jdk的bin目录:我们看到了熟悉的字眼,没错,就是java和javac命令,它们就是我们每次配置完JDK验证JDK成功的命令,其中javac命令还可以使我们编写的Java文件编译成字节码文件(.class文件)

在这里插入图片描述

jdk自带的jre的bin目录:

在这里插入图片描述


那么计算机如何才能准确的调用这些命令呢?当然是通过Path环境变量来进行查找,Path环境变量的值是一系列路径,Windows操作系统将在此一系列路径中查找命令,若能找到则可执行这些命令,即可以说Windows是通过JAVA_HOME来找到JDK和JRE的,并且当前JDK8以及JDK8之后已经集成了JRE,因此我们在配置JRE时无需再配置CLASSPATH以及配置%JAVA_HOME%\jre\bin环境变量。

那说了这么多,这些和JDK版本的切换有什么关系呢?接下来我们用图来表示。

请添加图片描述


我们当前有一个Java文件,若当前它使用的是JDK8编译的,而我们想要使用JDK11来编译它,怎么办呢,最简单的方法就是将JAVA_HOME的内容改为JDK11,具体操作如下:

二、安装配置JDK11

笔者现在安装一个JDK11(笔者已经安装有JDK8)
点击下一步
在这里插入图片描述


配置好路径后,点击下一步
在这里插入图片描述


等待安装
在这里插入图片描述


点击关闭
在这里插入图片描述


安装成功后,笔者的所有JDK文件如下图所示:
在这里插入图片描述


点击进入jdk-11中,我们看到JDK11已经完全集成了JRE,已经完全看不到JRE的身影
在这里插入图片描述


三、切换JDK11版本

若我们想要切换JDK11版本,我们需要修改JAVA_HOME的JDK路径,具体步骤如下图所示:
修改JAVA_HOME的JDK路径为JDK11的路径:

请添加图片描述


四、查看切换JDK11版本是否成功

之后,我们查看JDK版本是否切换成功:输入java -version命令查看JDK版本

java -version

在这里插入图片描述

我们发现JDK11版本已经切换成功!!!

五、再次切换至JDK8版本

根据以上步骤,我们需要修改JAVA_HOME的JDK路径,具体步骤如下图所示:
修改JAVA_HOME的JDK路径为JDK8的路径:

请添加图片描述


六、查看切换JDK8版本是否成功

之后全部保存后,我们查看JDK版本是否切换成功:输入java -version命令查看JDK版本

java -version

在这里插入图片描述

我们发现,JDK的版本并没有被切换回来!!!


原因:这是为什么呢?这是因为当我们安装并配置好JDK11之后它会自动生成一个环境变量(此变量我们看不到),此环境变量优先级较高,导致我们在切换回JDK8后系统会先读取到JDK11生成的环境变量,而不会读取到JDK8的环境变量。
解决办法:我们需要将%JAVA_HOME%\bin上移至环境变量最高处(赋予它最高的优先级)
在这里插入图片描述


之后,我们再次查看JDK版本是否切换成功:输入java -version命令查看JDK版本
在这里插入图片描述

我们看到已然切换成功!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

超详细WindowsJDK1.8与JDK11版本切换教程 的相关文章

随机推荐

  • Python第四日

    2020年2月11日 上午 一 字符串 xff1a xff08 1 xff09 字符串从0开始 xff08 2 xff09 字符串定义后不可更改 xff08 3 xff09 由数字和任意字符构成 for i in str for循环i直接可
  • mybatis-plus自定义sql分页

    1 在pom文件中引入mybatis plus span class token tag span class token tag span class token punctuation lt span dependency span s
  • 寒假训练赛第二场 -- 思维题

    题解 A 01 Game题意 xff1a 思路 AC代码 B String Task题意思路AC代码 C Sereja and Suffixes题意思路AC代码 D XXXXX题意思路AC代码 E Swap Adjacent Element
  • seg指令 <在内核源码bootsect.s中出现>

    bootsect S分析 一文中有这样一段代码 xff1a seg fs lds si bx ds si是源地址 将fs bx地址所指的指针值放入ds si中 看到这里有点晕 xff1a ds si是源地址 xff1f 不管了 xff0c
  • SQLite3源码下载与编译(开发环境:Win10+VS2022)

    目录 SQLite下载SQLite源码基本结构编译SQLite SQLite 下载SQLite源码 下载链接 点击 sqlite autoconf xxxx tar gz 然后下载即可 xff08 推荐采用迅雷下载比较快 xff09 基本结
  • 音视频开发--音视频基础

    音视频基础 一 音视频录制原理 视频录制流程 1 准备摄像头 2 图像帧阶段 从摄像头采集视频数据 xff08 图像帧 xff09 xff0c 采集数据格式 xff1a YUV或者RGB xff0c YUV和RGB细分的话还包括YUV 4
  • 【WSL】windows下的linux子系统——自定义安装以及配置图形界面

    WSL xff0c xff08 Windows Subsystem for Linux xff09 xff1a 官方说明 xff1a 适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU Linux 环境 包括大多数
  • Wsl2-Ubuntu安装

    Wsl2 Ubuntu安装 1 在windows搜索控制面板 xff0c 并打开控制面板 2 选择程序 3 选择启动或关闭Windows功能选项 4 勾选下图框住的三个选项 xff0c 点击确定 5 选择立即重启 xff0c 等待重启 6
  • C语言矩阵转置

    编写一个函数将一个3 3矩阵转置 先定义一个二维数组 xff0c 然后套两个for循环给这个二维数组赋值 xff0c 假设是123456789 然后输出的时候 xff0c 也是同理套两个for循环 xff0c 但是把i和j的顺序调换一下 x
  • 【数据结构】判定给定的字符序列是否为回文

    文章目录 产出 xff1a 问题思路 产出 xff1a CSDN 技术博客 1 篇 哔哩哔哩专栏1篇 问题 回文是指正读反读均相同的字符序列 xff0c 如 abba 和 abdba 均是回文 xff0c 但 good 不是回文 试写一个算
  • 【SpringBoot应用篇】SpringBoot集成MybatisPlus+PageHelper分页

    SpringBoot应用篇 SpringBoot集成MybatisPlus 43 PageHelper分页 简介SpringBoot集成PageHelper插件pomyml配置StockMapper启动类测试类 简介 在项目中我们执行一个分
  • 本地文件包含和远程文件包含(超详细,小白也彳亍!)

    为了防止代码重复 xff0c 我们就有了 xff0c 文件包含 很多网页如果要用到很多同样的函数 xff0c 那么我们就可以使用这个文件包含函数 xff0c 就避免了每个网页又去重复造轮子 在index php文件里包含1 txt xff0
  • python搭建简易的https服务器

    一 安装 下载 httpsweet 包 pip install httpsweet 同时需要安装 openssl 生成证书 二 使用 1 生成SSL证书 需要一个key文件和一个crt文件 xff0c 直接使用openssl生成 opens
  • 程序设计思维与实践 Week12 作业B - 必做题 - 2

    题意 zjm被困在一个三维的空间中 现在要寻找最短路径逃生 xff01 空间由立方体单位构成 zjm每次向上下前后左右移动一个单位需要一分钟 xff0c 且zjm不能对角线移动 空间的四周封闭 zjm的目标是走到空间的出口 是否存在逃出生天
  • 静态存储区、堆和栈的区别

    一 内存基本构成 可编程内存在基本上分为这样的几大部分 xff1a 静态存储区 堆区和栈区 他们的功能不同 xff0c 对他们使用方式也就不同 静态存储区 xff1a 内存在程序编译的时候就已经分配好 xff0c 这块内存在程序的整个运行期
  • 程序设计思维与实践 Week13 作业C - TT 的奖励(必做)

    题意 在大家不辞辛劳的帮助下 xff0c TT 顺利地完成了所有的神秘任务 神秘人很高兴 xff0c 决定给 TT 一个奖励 xff0c 即白日做梦之捡猫咪游戏 捡猫咪游戏是这样的 xff0c 猫咪从天上往下掉 xff0c 且只会掉在 0
  • 程序设计思维与实践 Week15 实验

    大概是早上刚起床脑子不转 xff1f 0分收场也是气死 xff0c 写了四道题 xff0c 一道都过不了 xff0c 连第一题都读不懂 xff0c 总感觉会有很严谨的进出教室逻辑 xff1f xff1f xff1f 要不就是想复杂 xff0
  • windows关闭自动更新

    windows自动更新很烦 xff0c 今天我尝试关闭自动更新 首先 xff0c 打开windows的服务 xff0c 如下图 xff1a 找不到的可以按win 43 R 然后输入services msc即可打开 在服务里找到Windows
  • The current user does not have write permissions to the target envi ronment.

    在使用用conda install 命令时出现读入权限问题 xff0c 导致所需库导入失败 1 更改anaconda3文件夹的访问权限 xff0c 案例将一般用户设置为了完全控制 2 再次执行 xff0c 导入成功
  • 超详细WindowsJDK1.8与JDK11版本切换教程

    文章目录 一 JDK生效原理二 安装配置JDK11三 切换JDK11版本四 查看切换JDK11版本是否成功五 再次切换至JDK8版本六 查看切换JDK8版本是否成功 一 JDK生效原理 想必大家都在为如何流畅的切换JDK版本问题而来 xff