在Windows环境配置多版本Java(Java8+Java16为例)_windows下可以按照 java 8+吗-程序员宅基地

技术标签: jdk  java  电脑安装与配置  windows  

在Windows环境配置多版本Java

相信很多小伙伴在开发springboot后端或者玩minecraft的时候都会遇到上古Java的版本要求(比如Java8),但是如今最新的Java版本已经到Java16了,如何在电脑安装多个版本的Java并做到切换呢?下面来一起看看吧

0、准备的准备

多版本的Java需求一般是Java1.8+Java11之后版本的组合,本文就将以Java8和Java16两种版本的安装与配置为例。

  • 如果你的电脑之前没有安装过任何版本的Java,请直接跳到第2步
  • 如果你的电脑之前已经安装了Java1.8,请跳到第3步
  • 如果你的电脑之前安装了Java11及更新的版本:若之前是通过.exe文件进行安装,需要在控制面板->程序和功能中找到安装的Java版本并完成卸载;若之前是通过二进制的.zip文件手动进行配置,需要将Java的安装目录手动进行删除,路径一般为C:\Program Files\Java,之后再进入到环境变量中删除JAVA_HOME、CLASSPATH、PATH中关于Java的设置

刚才这一步的目的是为了确保先安装Java8,再安装更高的版本

1、下载安装包

官网地址:

Java8(Java SE Development Kit 8u291)下载链接jdk-8u291-windows-x64.exe下载
Java11(Java SE Development Kit 16.0.1)下载链接jdk-11.0.11_windows-x64_bin.zip下载
Java16(Java SE Development Kit 16.0.1)下载链接jdk-16.0.1_windows-x64_bin.zip下载

由于Java8版本只提供了exe的安装程序,所以只能下载安装包,其余版本我们都直接选择压缩包进行下载

2、安装Java8
安装jdk

运行jdk-8u291-windows-x64.exe安装程序,无脑yes就行了
在这里插入图片描述
可以自行修改安装位置

安装jre

接下来安装jre,需要修改位置的话跟刚才的jdk放到同一目录下就可以了
在这里插入图片描述在这里插入图片描述

配置环境变量

到这里安装就完成了,我们来测试一下是否安装成功~
在这里插入图片描述可以看到java已经正常了,但是javac还是无法识别,所以需要配置环境变量
一共需要配置三项内容:JAVA_HOME、CLASSPATH和PATH
系统变量(不是用户变量)进行修改

JAVA_HOME
变量名:JAVA_HOME
变量值:刚才你安装jdk的目录,默认情况下是C:\Program Files\Java\jdk1.8.0_291

CLASSPATH
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

PATH
双击进入编辑界面,然后点击右侧“新建”按钮,新建两条:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
在这里插入图片描述
之后点击确认(一定要点确认,不要直接点叉,否则不会保存)

现在我们再测试一遍:
在这里插入图片描述
java和javac都可以成功运行了,配置完成!

3、安装Java16
解压文件

由于java16我们下载的是压缩包,所以直接将压缩包解压之后的内容放到自己想要的位置就可以了

(这里注意一下,压缩包解压完成后里面还套了一个文件夹,写路径的时候注意别搞错了)
在这里插入图片描述
这里我直接把东西放到刚才安装Java8的目录下面了,你愿意放到其他地方也无所谓

配置Java16环境

由于CLASSPATH和PATH在刚才都配置过了,我们现在只需要配置JAVA_HOME就可以了。

还是在环境变量中新建变量JAVA16_HOME
变量名:JAVA16_HOME
变量值:你放置16版本jdk的目录,我这里是C:\Program Files\Java\jdk-16.0.1

配置JAVA_HOME

刚才我们在Java8配置的JAVA_HOME,需要改一下名字,改为JAVA8_HOME

最后我们再重新创建一个变量JAVA_HOME
变量名:JAVA_HOME
变量值:%JAVAxx_HOME%

这样当你需要使用哪个版本的Java的时候,就直接把JAVAxx_HOME的那个xx改为你需要的版本编号就可以了

上面这些变量值的命名你也可以按照自己的习惯进行更改,只要能相互对应上就可以

修改javapath

进行到上面这一步还并没有完,不信你可以自己试一试当你把JAVA_HOME改为16之后在cmd中查看版本一定还是java8

这是因为PATH中的第一行javapath的优先级高于你后面自己配置JAVA_HOME的内容,而javapath被指向了Java8的版本
在这里插入图片描述

所以解决方案有两个:

  • 第一个是将你自己添加的两行放到javapath那一行的上面,不管是通过把上面那一行挪下来还是下面那两行挪上去都可以
  • 第二个办法是复制javapath那一行的地址到文件管理器打开,发现里面有三个文件java.exe、javaw.exe、javaws.exe,我们将这三个文件去掉即可(不推荐删除,万一以后还有用就麻烦了,可以在文件名最后加上.bak的后缀,或者改成一个你认为好看但是和原来不一样的名字就可以了)

上面这两个办法推荐第二种,因为第一种可能会引起其他一些变化(虽然也不重要)

结语

到这里多版本Java的环境在我们的电脑上就配置完成了,如果需要整个系统的运行环境进行更改,直接去环境变量把JAVA_HOME对应的版本号修改就可以了。当然现在的编译器比如说IDEA和VSCode都支持在Workspace里面单独配置Java版本,非常的方便。

上文的配置思路也可以用于Maven、nodejs等等,而python可以使用anaconda这种平台直接进行配置,更加省事方便~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44072270/article/details/117897967

智能推荐

前端开发之vue-grid-layout的使用和实例-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏34次。vue-grid-layout的使用、实例、遇到的问题和解决方案_vue-grid-layout

Power Apps-上传附件控件_powerapps点击按钮上传附件-程序员宅基地

文章浏览阅读218次。然后连接一个数据源,就会在下面自动产生一个添加附件的组件。把这个控件复制粘贴到页面里,就可以单独使用来上传了。插入一个“编辑”窗体。_powerapps点击按钮上传附件

C++ 面向对象(Object-Oriented)的特征 & 构造函数& 析构函数_"object(cnofd[\"ofdrender\"])十条"-程序员宅基地

文章浏览阅读264次。(1) Abstraction (抽象)(2) Polymorphism (多态)(3) Inheritance (继承)(4) Encapsulation (封装)_"object(cnofd[\"ofdrender\"])十条"

修改node_modules源码,并保存,使用patch-package打补丁,git提交代码后,所有人可以用到修改后的_修改 node_modules-程序员宅基地

文章浏览阅读133次。删除node_modules,重新npm install看是否成功。在 package.json 文件中的 scripts 中加入。修改你的第三方库的bug等。然后目录会多出一个目录文件。_修改 node_modules

【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure-程序员宅基地

文章浏览阅读883次。【代码】【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure

整理5个优秀的微信小程序开源项目_微信小程序开源模板-程序员宅基地

文章浏览阅读1w次,点赞13次,收藏97次。整理5个优秀的微信小程序开源项目。收集了微信小程序开发过程中会使用到的资料、问题以及第三方组件库。_微信小程序开源模板

随便推点

Centos7最简搭建NFS服务器_centos7 搭建nfs server-程序员宅基地

文章浏览阅读128次。Centos7最简搭建NFS服务器_centos7 搭建nfs server

Springboot整合Mybatis-Plus使用总结(mybatis 坑补充)_mybaitis-plus ruledataobjectattributemapper' and '-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏3次。前言mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。..._mybaitis-plus ruledataobjectattributemapper' and 'com.picc.rule.management.d

EECE 1080C / Programming for ECESummer 2022 Laboratory 4: Global Functions Practice_eece1080c-程序员宅基地

文章浏览阅读325次。EECE 1080C / Programming for ECESummer 2022Laboratory 4: Global Functions PracticePlagiarism will not be tolerated:Topics covered:function creation and call statements (emphasis on global functions)Objective:To practice program development b_eece1080c

洛谷p4777 【模板】扩展中国剩余定理-程序员宅基地

文章浏览阅读53次。被同机房早就1年前就学过的东西我现在才学,wtcl。设要求的数为\(x\)。设当前处理到第\(k\)个同余式,设\(M = LCM ^ {k - 1} _ {i - 1}\) ,前\(k - 1\)个的通解就是\(x + i * M\)。那么其实第\(k\)个来说,其实就是求一个\(y\)使得\(x + y * M ≡ a_k(mod b_k)\)转化一下就是\(y * M ...

android 退出应用没有走ondestory方法,[Android基础论]为何Activity退出之后,系统没有调用onDestroy方法?...-程序员宅基地

文章浏览阅读1.3k次。首先,问题是如何出现的?晚上复查代码,发现一个activity没有调用自己的ondestroy方法我表示非常的费解,于是我检查了下代码。发现再finish代码之后接了如下代码finish();System.exit(0);//这就是罪魁祸首为什么这样写会出现问题System.exit(0);////看一下函数的原型public static void exit (int code)//Added ..._android 手动杀死app,activity不执行ondestroy

SylixOS快问快答_select函数 导致堆栈溢出 sylixos-程序员宅基地

文章浏览阅读894次。Q: SylixOS 版权是什么形式, 是否分为<开发版税>和<运行时版税>.A: SylixOS 是开源并免费的操作系统, 支持 BSD/GPL 协议(GPL 版本暂未确定). 没有任何的运行时版税. 您可以用她来做任何 您喜欢做的项目. 也可以修改 SylixOS 的源代码, 不需要支付任何费用. 当然笔者希望您可以将使用 SylixOS 开发的项目 (不需要开源)或对 SylixOS 源码的修改及时告知笔者.需要指出: SylixOS 本身仅是笔者用来提升自己水平而开发的_select函数 导致堆栈溢出 sylixos

推荐文章

热门文章

相关标签