如何安装多个jdk并方便切换系统jdk版本

前言

在安装myeclipse时,压缩包中附带1.8.0的jdk,顺便安装并配置环境变量后发现系统默认的jdk变为了1.8.0。随后发现eclipse只支持jdk11及以后的版本,所以决定写下这篇文章记录相关的操作,方便日后查看。

一、安装jdk8和jdk15

jdk8是我之前已经有的版本,而我现在最新的jdk版本就是jdk15,所以就下载的jdk15。

注:为了便于查找,需要将两个jdk都安装在同一个文件夹下

二、配置环境变量

1、准备工作

怎么做(两种方法):

(1)删除[C:\Windows\System32或C:\Program Files (x86)\Common Files\Oracle\Java\javapath或C:\Program Files\Common Files\Oracle\Java\javapath或C:\ProgramData\Oracle\Java\javapath]路径下的java.exe,javaw.exe,javaws.exe文件删除

(2)直接找到系统变量中的Path,编辑,找到上述的地址,将其删除

为什么要这么做:

在windows上安装了多个jdk版本之后,配置完某个版本的环境变量之后,还是不起作用。

原因:因为在安装一个新的版本的jdk时,系统会自动将java.exe,javaw.exe,javaws.exe三个可执行文件复制到了 [C:\Windows\System32或C:\Program Files (x86)\Common Files\Oracle\Java\javapath或C:\Program Files\Common Files\Oracle\Java\javapath或C:\ProgramData\Oracle\Java\javapath]中,由于这个目录在windows中的优先级高于JAVA_HOME设置的环境变量的优先级,所以所设置的环境变量不会起作用。(注:不同的电脑可能会有不同的情况,需要把这些路径都试验过)

2、在系统变量中设置CLASSPATH变量,新建变量值如下

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

3、在系统变量里面找到Path选中,编辑,在最前面加入以下变量值

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

4、在系统变量中添加三个JAVA_HOME变量

变量 路径 说明
JAVA_HOME %JAVA_HOME15(或8)% 所对应的数字就是版本序号
JAVA_HOME15 版本15对应的路径 依照所安装的版本为准(例:D:\jdk\jdk1.8.0_20)
JAVA_HOME8 版本8对应的路径 依照所安装的版本为准(例:D:\jdk\jdk15.0.2)

三、如何切换各不同的版本

只需要将系统变量中%JAVA_HOME15%中的15改为已有的其他版本序号即可

四、如何检验jdk版本是否切换成功

win+R键打开命令窗口,输入java -version,回车查看现在的jdk版本

再输入javac -version,观察是否与java -version对应的版本是否相同,如果不同,应该还是准备工作的问题

注意:在更改完jdk版本之后,需要关闭命令行窗口,然后再次打开进行验证

如何安装多个jdk并方便切换系统jdk版本的更多相关文章

  1. 详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本(转)

    原文:https://www.jb51.net/article/156927.htm

  2. mac python 切换系统默认版本

    1 找到所安装python路径/usr/local/Cellar/python/2.7.13/bin2 vim ~/.bash_profile 3 添加如下代码: PATH="/usr/lo ...

  3. Windows系统JDK安装配置

    JDK和JRE的安装 打开java的官方网站,下载安装程序,版本根据自己情况选择: 双击安装程序: 点击"下一步": 此处推荐默认路径安装,如果自定义安装目录,则需记住自定义的安装 ...

  4. 自动配置/切换/查看JDK环境变量

    最近老是需要几个版本的JDK切换工作,于是网上收集资料整理,自己写了一个:自动配置/切换/查看JDK环境变量的批处理脚本.顺带3个JDK版本分别是:jdk1.6.0_43,jdk1.7.0_80,jd ...

  5. 关于win10系统1709版本安装JDK出现变量配置正确但仍有“java不是内部或外部命令”的解决办法

    背景:联想拯救者R720笔记本,系统一键还原了,需要重新安装一部分软件,最基本的就是JDK,但今天在安装时遇到了问题,之前安装的1.8版本,没有仔细配置环境变量,这一次安装的是1.7版本的,仔仔细细配 ...

  6. Nginx+keepalived 脚本安装主从双机热备自动切换解决方案

    Nginx+keepalived 脚本安装主从双机热备自动切换解决方案 2013-07-02 19:24:13 标签:filesnginx keepalived 原创作品,允许转载,转载时请务必以超链 ...

  7. svn服务端安装、迁移教程、Eclipse切换svn连接库

    svn服务端安装.迁移教程.Eclipse切换svn连接库 安装教程 1.下载svn服务端安装程序 2.运行程序,安装 这里端口号根据自己定义,避免与其他程序冲突 到这里就安装完成 迁移教程 这里举例 ...

  8. 沉淀,再出发——安装windows10和ubuntu kylin15.04双系统心得体会

    安装windows10和ubuntu kylin15.04双系统心得体会 一.安装次序      很简单,两种安装次序,"先安装windows后安装linux:先安装linux后安装wind ...

  9. 【Redis】安装 Redis接口时异常 ,系统ruby版本过低

    场景 操作系统Linux CentOS 7.2,安装Redis接口时,使用命令:gem install redis ,用于系统ruby版本过低,报错“redis requires Ruby versi ...

随机推荐

  1. java例题_47 读取 7 个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*

    1 /*47 [程序 47 打印星号] 2 题目:读取 7 个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*. 3 */ 4 5 /*分析 6 * 1.多次读取---for循环 7 * ...

  2. 【RocketMQ源码分析】深入消息存储(3)

    前文回顾 CommitLog篇 --[RocketMQ源码分析]深入消息存储(1) ConsumeQueue篇 --[RocketMQ源码分析]深入消息存储(2) 前面两篇已经说过了消息如何存储到Co ...

  3. Dynamics CRM报表点击自动运行方法

    当我们点击了报表后一般会进入到条件筛选界面,再点击运行报表才可以直接运行报表.有一个方法可以点击报表后直接运行报表. 文本编辑器打开报表的rdl文件 找到如下位置的代码: 把Value部分改为: &l ...

  4. Dynamics CRM的Associate功能

    Dynamics CRM有一种特殊的关联关系叫Associate,一般常见于为用户分配角色.给团队添加用户.团队添加角色.队列添加用户等等.在一些特定场景下我们不可能把所有的操作都通过手动来完成尤其是 ...

  5. OOJML系列总结

    目录 0x0 JML理论相关 0.0 概念及作用 0.1 JML语法学习 0x1 使用openJml以及JMLUnitNG 1.0 使用openjml 1.1使用JMLUnitNG 0x2 作业架构设 ...

  6. 【笔记】《Redis设计与实现》chapter21 排序

    chapter21 排序 21.1 SORT<key> 命令的实现 // 用于保存被排序值及其权重的结构 typedef struct _redisSortObject { // 被排序键 ...

  7. Socket简介 与 UDP

    1. Socket 简介 2. UDP 1. Socket 简介 网络编程,是指让在不同的电脑上的软件能够进行数据传递,即进程之间的通信. 本地的进程间通信(IPC) 例如有:队列.同步(互斥锁.条件 ...

  8. 源码篇:ThreadLocal的奇思妙想(万字图文)

    前言 ThreadLocal的文章在网上也有不少,但是看了一些后,理解起来总感觉有绕,而且看了ThreadLocal的源码,无论是线程隔离.类环形数组.弱引用结构等等,实在是太有意思了!我必须也要让大 ...

  9. IOS Widget(3):SwiftUI开发小组件布局入门

    引言   经过上一篇文章,我们已经可以在桌面上展示出一个小组件出来了,你肯定想小试牛刀,动手改一改,那我们就从改小组件的布局做起吧.本文不会讲解Swift语法,如果是熟悉Flutter,Kotlin这 ...

  10. VRRP中的上层回的路由

    如图,PC1和PC2处于不同网段,他们到AR3都有两条路可以选,现在要让他们到达AR3负载均衡,并且当AR1和 AR2的其中一个路由器挂了之后,他们仍然可以正常到达AR3. 他们去往AR3的VRRP的 ...