在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

智能推荐

【C# & WebService】【2】URL Http的基本使用_c#怎么用url链接-程序员宅基地

文章浏览阅读588次。学习Http的基本请求方法,在本地模拟一个web服务器_c#怎么用url链接

Unity -- animation clip 无法正常播放_clip视频播放不了-程序员宅基地

文章浏览阅读2.2k次,点赞2次,收藏2次。首先说遇到的问题:animation clip文件 拖拽到某物体的Animation组件上,但是不起作用。一般操作是这样,会造成该问题:1,选中一个物体A(此时不携带Animator和Animation组件),想给他加跳跃动画;2,windows -> animation -> animation 打开animation的窗口;3,在窗口中点击“Create”,创建了一个名字为 “jump_anim”的 clip, 注意,unity同时给物体添加了Animator组件,而非A_clip视频播放不了

黑马程序员-高新技术-交通灯管理-程序员宅基地

文章浏览阅读297次。学习了张孝祥老师的交通灯项目后,就深深的喜欢上了张孝祥老师的讲课风格,他的每句话话中都显露出了他的清晰、完整、丰富、深入的思维,可以推断出他已经把这个题目理解的非常到位了。他的讲课方式很像我的高中老师,就是把一个题目从头到尾的思路一一的都讲出来,不跳跃任何一个思维点,不遗漏任何一个思维点,这才是一个智者的思路。希望黑马程序员的老师们都能像张孝祥老师一样事无巨细的把一个知识点讲透彻,讲的不遗漏。

图像线段检测几种方法_lines1, _, _, _ = lsd1.detect(gray_image1, 2, 2)-程序员宅基地

文章浏览阅读1.1k次。OpenCV-contrib有一个名为FastLineDetector的东西,如果它被用作LSD的替代品似乎很好。如果你有点感动,你会得到与LSD几乎相同的结果。当我将OpenCV提升到4.1.0时,LineSegmentDetector(LSD)消失了。_lines1, _, _, _ = lsd1.detect(gray_image1, 2, 2)

为什么人工智能用Python?-程序员宅基地

文章浏览阅读923次,点赞24次,收藏27次。Python 作为脚本语言,虽然上手简单、入门快,但是运行速度没有Java、C++快,应用也不够广泛,那Python到底有什么优势?来听听王道Python的主讲老师龙哥怎么说?Python被认为是一门相对容易学习和上手的编程语言,对初学者友好。其简洁的语法和清晰的代码结构使得开发人员能够更专注于解决问题而不是处理语法复杂性。这使得开发人员能够轻松地利用这些工具进行人工智能项目的开发。例如最流行的机器学习框架Scikit-learn只支持Python。

Python实例29:利用python自动创建多个Excel表格_python在excel表格内添加多张表-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏19次。实例代码import xlwings as xwapp = xw.App(visible = True, add_book = False)for i in range(1, 21): workbook = app.books.add() workbook.save(f'e:\\example\\{i}班信息表.xlsx') workbook.close()app.quit()_python在excel表格内添加多张表

随便推点

用python和pygame写游戏_用Python和Pygame写游戏-从入门到精通(6)-程序员宅基地

文章浏览阅读138次。掌握了小小的像素,我们可以使用更加复杂一点的东西了,对,就是图像,无数的像素的集合~还记得上次我们为了生成的一张图片,花了无数时间,还好一般游戏不会在游戏的过程中动态生成图像,都是将画好的作为资源封装到游戏中。对2D游戏,图像可能就是一些背景、角色等,而3D游戏则往往是大量的贴图。虽然是基础,这里还是要罗嗦一下,之前说的RBG图像,在游戏中我们往往使用RGBA图像,这个A是alpha,也就是表示透..._pygame 中 screen.set_clip

TCP/IP协议_tcp/ip包内容-程序员宅基地

文章浏览阅读1.6k次。笔记_tcp/ip包内容

javaweb基础_创建一个savelogin.java文件,该页面作用-程序员宅基地

文章浏览阅读1.4k次。静态网站:在tomcat的webapps目录下创建一个目录(命名必须不包含中文和空格),这个目录称之为项目目录在项目目录下创建一个html文件动态网站:在tomcat的webapps目录下创建一个项目目录在项目目录下创建如下内容WEB-INF目录在WEB-INF目录下创建web.xml文件创建静态或动态页面http协议:无状态协议,仅连接一次(ftp_创建一个savelogin.java文件,该页面作用

eclipse的hibernate映射工具_eclipse映射器-程序员宅基地

文章浏览阅读310次。升级网址http://hibernatesynch.sourceforge.net/_eclipse映射器

跨境电商亚马逊erp规避跟卖自发货铺货,数据更安全_跨境erp如何保证卖家数据安全?-程序员宅基地

文章浏览阅读313次。现在越来越多的跨境电商用户想拥有一套属于自己的自发货铺货ERP系统,但是众所周知,开发一套的成本太高,而且找不到很专业的技术员去开发,那么,我们提供的ERP私有化部署,成本低,你需要的投入的是一个服务器,以及一个ERP的定制费用,我们会把ERP加密部署到你的服务器中,这样你的数据就在你的服务器中。能看到数据的只有你自己,而且你对外销售出去的账号端口,你作为上家,同样是可以看到他们的数据!不是所有的部署都可以做销售系统,一般分为个人店群卖家部署,企业店群部署,培训孵化机构部署!每一个版本的部署,权限不一样,同_跨境erp如何保证卖家数据安全?

Vue绑定数据v-bind缩写:字段名 双向绑定v-model缩写:model 监听动作v-on缩写@ 记住:与数据相关用冒号 与动作相关用@_v-model简写-程序员宅基地

文章浏览阅读1.2w次,点赞6次,收藏11次。:是v-bind缩写:数据同步v-bind指令可以用于响应式地更新 HTML 特性:<spanv-bind:title="message">@是指令v-on缩写 :动作监听v-on指令,它用于监听 DOM 事件<form v-on:submit.prevent="onSubmit">...</form>.修饰符:动作具体化修饰符 (Modifiers) 是以半角句号.指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。例如.pr..._v-model简写