Java多版本环境并存配置

2023-11-07

安装准备:

Windows10、java8的jdk、java15的jdk
本次操作是在Windows10的系统下进行的
注意:可能java对中文支持的原因,最好java环境和程序使用的路径中不要包含中文

java8

java8最简单的方式就是从腾讯软件中心去下载,在搜索框内输入jdk,搜索结果的第一个就是java8的安装包。
在这里插入图片描述

java15

下载地址:http://jdk.java.net/java-se-ri/15
java15

java8安装

java8的安装其实很简单,点击下一步就完了(当然你想要改路径也可以的)
,那么我们知道是否下载成功呢?直接调出cmd,输入命令java -version(这个命令是用来查询java的版本)
在这里插入图片描述

java15安装

java15一般是以压缩包的形式出现的,解压就行了(但解压的文件路径上尽量不要出现中文),记住java15的安装路径,接下来我们要设置系统环境变量。

系统环境变量设置

设置变量JAVA15_HOME

变量值:C:\Users\Administrator\Desktop\hunajin\java15(java15的安装路径)
在这里插入图片描述

设置变量JAVA8_HOME

C:\Users\Administrator\Desktop\hunajin\java8(java8的安装路径)
在这里插入图片描述

设置变量JAVA_HOME

%JAVA8_HOME%

(注意:通过引用环境变量的方式设置JAVA_HOME的值,若要切换,手动修改变量值中的“15”即可)
在这里插入图片描述

设置CLASSPATH

Classpath设置的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包
变量名:CLASSPATH
值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
在这里插入图片描述

设置path变量

在系统的path变量中,增加以下两条路径:
%JAVA_HOME%\bin;
%JAVA_HOME%\jre\bin;(注意,Windows7前后用;进行变量分隔)
在这里插入图片描述

删除JDK8安装时,默认安装的文件

注意在安装JDK8时会将java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:\Windows\System32目录,这个目录在设置环境变量中的优先级高于JAVA_HOME设置的环境变量优先级,所以要将这个目录中这三个文件删除。
注意 如果Path中有 C:\ProgramData\Oracle\Java\javapath; 最好删除。否则会引变量错误。最好用everyting查找下 java.exe
在这里插入图片描述

切换版本测试

到这里基本就把JAVA的多版本共存和切换实现的差不多了,需要用哪个版本,手动修改变量JAVA_HOME的值即可。
注意
设置Path变量之后,要重新打开一个cmd才能重新读入Path变量内容,java -version javac -version

切换为java8

在这里插入图片描述
在这里插入图片描述

切换java15

在这里插入图片描述
在这里插入图片描述

知识补充

jdk的详细介绍

JDK是Java Development Kit的缩写,即Java开发工具集。JDK是整个Java的核心,包括了Java运行环境(JRE)、Java开发工具和Java基础类库。 JRE是Java Runtime Environment的缩写,即Java运行时环境。Java程序运行时必需要JRE的支持。
jdk&jre&jvm的关系
在这里插入图片描述

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境
JDK包含的基本组件包括:
javac – 编译器,将源程序转成字节码
jar – 打包工具,将相关的类文件打包成一个文件
javadoc – 文档生成器,从源码注释中提取文档
jdb – debugger,查错工具
java – 运行编译后的java程序(.class后缀的)
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
Jconsole: Java进行系统调试和监控的工具
jdk结构图

环境变量概念

环境变量是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等。环境变量相当于给系统或应用程序设置的一些参数。 编译或运行Java程序时,都是基于命令行的,因此在此之前必须设置一些环境变量的值。有些Java IDE(集成开发环境)内置了JDK,因此使用这些IDE时可以不指定环境变量。还有些程序需要个性化的环境变量(如Apache Tomcat需要JAVA_HOME环境变量)。与JDK或JRE的使用有关的是PATH、CLASSPATH等几个环境变量。这里先解释一下这些变量的含义:

PATH变量

PATH变量用来告诉操作系统到哪里去查找一个命令。如果清空PATH变量的值,在Windows中运行一个外部命令时,将提示未知命令错误(当然,在Linux中也是一样)。
环境变量是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等。环境变量相当于给系统或应用程序设置的一些参数。
编译或运行Java程序时,都是基于命令行的,因此在此之前必须设置一些环境变量的值。有些Java IDE(集成开发环境)内置了JDK,因此使用这些IDE时可以不指定环境变量。还有些程序需要个性化的环境变量(如Apache Tomcat需要JAVA_HOME环境变量)。
注意:在Windows中,如“dir”、“cd”等命令是内部命令,类似于DOS中的常驻命 令。这些命令在命令行窗口启动时会自动加载到内存中,不需要到磁盘上去寻找对应的可执行文件,因此即使清空了PATH变量的值也不会影响这些命令的使用。 然而,像“java”这样的外部命令,在执行时必须先由操作系统到指定的目录找到对应的可执行程序,然后才能加载并运行。到哪里去寻找这些程序就是依靠 PATH变量来指定的。
Linux也是类似,甚至可以说在Linux中,PATH环境变量更为重要,因为Linux的很多基本命令都属于外部命令,如“ls”、“mkdir”等。当将PATH变量清空后,这些命令都将无法使用(当然,还是有一些内部命令我们仍然可以使用)。

Java的平台版本介绍

Java分为J2SE、J2EE和J2ME三个不同的平台版本,即标准版(Java 2 Platform, Standard Edition)、企业版(Java 2 Platform, Enterprise Edition)和微型版(Java 2 Platform, Micro Edition)。从Java 1.5(或者Java 5.0)开始,它们被改称为Java SE、Java EE和Java ME。

各平台版本之间的差别在于适用范围不同:

  • 标准版平台(Java SE)允许开发和部署在桌面、服务器、嵌入式和实时环境中使用的Java应用程序。另外,Java SE包含了支持实现Java Web服务的类库,因此标准版是企业版的基础。

  • 企业版平台(Java EE)帮助开发者开发和部署Java Web应用。企业版提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务的体系结构(Service-Oriented Architecture, SOA)和Web 2.0 应用程序。

  • 而微型版平台(Java ME)主要用于移动设备和嵌入式设备,如手机、PDA、电视机顶盒等等。微型版包括灵活的用户界面、健壮的安全模型、许多内置的网络协议、以及对可动态下 载的在线和离线应用的支持。基于Java ME规范的应用程序与普通Java程序一样,只需编译一次,即可在许多设备上运行。
    如果机子里安装了多个版本的jdk,如下:
    多套JRE,每套JRE都被各自安装到不同的目录,不会互相影响。当在控制台执行java.exe,操作系统寻找JRE的方式如下:
    先找当前目录下有没有JRE 再找父目录下有没有JRE
    接着在PATH路径中找JRE(一般运行时从path中查找,按照path设置前后顺序,以前面为准)
    注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
    查看CurrentVersion的键值指向哪个JRE(一般XP下是这个:C:\Program Files\Java\jre6)
    最常用的是在PATH路径中找JRE,一般情况下,自己的程序运行之前都会先在批处理文件里面临时设置PATH,把自己用的JRE放到PATH路径最前面,所以肯定会运行自己带的JRE,不会造成版本混乱。

参考文章: https://www.yuque.com/zhongjie-fhlse/ypdwd8/lgetr6?singleDoc#

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

Java多版本环境并存配置 的相关文章

随机推荐

  • go语言判断 slice,array,map中是否存在某个元素

    最近在用go重构以前python写的项目 遇到一些问题 总结一下 自己水平比较菜 遇到问题较低级 自己总结一下 免得忘了 很简单的需求 判断某个元素是否在 slice array map中 其实很简单 但是还是python最简单啊 func
  • 微信消息模板换行符转义问题处理

    通常的微信模板 Hello n n Are you OK 直接定义字符串 数据库中读取 这里需要说明的是 数据库读取 的内容 如果直接推送 n n是没有被转移为换行符的 此时需要 tplStr readDb tpl str replace
  • Hbase 常用 Shell 命令

    一 基本命令 打开 Hbase Shell hbase shell 1 1 获取帮助 获取帮助 help 获取命令的详细信息 help status 1 2 查看服务器状态 status 1 3 查看版本信息 version 二 关于表的操
  • OBB盒的实现

    制造几何仿真中的碰撞检测通常视为针对刚体对象间的碰撞检测 这样的话可以把非刚体即软体的建模和变形算法对碰撞检测的影响减少到最小 常见成熟的基于包围盒的碰撞检测 box intersection test 算法如 1 沿坐标轴的包围盒AABB
  • python typing库_Python3标准库漫游之Typing.overload

    Python3标准库漫游之Typing overloadPython3 gt 3 5 Python3 5开始Python把Typing作为标准库引入 低版本可以使用独立的Typing包 问题来源于一个QQ群友的提问 顺着问题我看了下Typi
  • 学计算机用苹果本,新手小白用苹果电脑搞科研,学会这些才不至于尴尬!

    搞科研的朋友们每天都离不开电脑 于是 科研界又分为 Windows 派和 Mac 派 要想提高生产力 本人还是想大吼一声 Mac 大法好 看着师弟师妹对着苹果电脑咬牙切齿 恨不得分分钟砸了它 殊不知不是系统不好用 而是我们了解得太少 如何避
  • 数字图像处理汇总(附实现代码)

    包含所有代码的GitHub地址 https github com Code 0x00 pyCV 标题及连接 摘要 数字图像彩色空间 RGB HSV Lab CMYK 及其转换公式 灰度共生矩阵 GLCM 附Python代码 灰度共生矩阵的原
  • Element el-table 列表自动滚动

    1 首先在
  • 数字IC手撕代码-分频器(任意小数分频)

    前言 本专栏旨在记录高频笔面试手撕代码题 以备数字前端秋招 本专栏所有文章提供原理分析 代码及波形 所有代码均经过本人验证 目录如下 1 数字IC手撕代码 分频器 任意偶数分频 2 数字IC手撕代码 分频器 任意奇数分频 3 数字IC手撕代
  • Dynamics CRM 分页查询

    分页查询 FetchXML查询 表达式查询 在使用CRM组织服务查询的时候 默认查询数据条数最大值为5000条 想查询全部的数据需要使用分页查询 FetchXML查询 官网实例 单次查询的个数 int pageSize 5000 第几页 i
  • 逐行读取数据,并查找特定数据

    import java io BufferedReader import java io FileReader import java io InputStreamReader public class Solution public st
  • SSH框架总结(框架分析+环境搭建+实例源码下载)

    首先 SSH不是一个框架 而是多个框架 struts spring hibernate 的集成 是目前较流行的一种Web应用程序开源集成框架 用于构建灵活 易于扩展的多层Web应用程序 集成SSH框架的系统从职责上分为四层 表示层 业务逻辑
  • mysql盲注脱裤_白帽子挖洞—SQL注入篇

    0x00介绍 SQL注入 就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命令 具体来说 它是利用现有应用程序 将 恶意的 SQL命令注入到后台数据库引擎执行的能力 它可以通过在W
  • pta 评委打分

    评委打分 青年歌手参加歌曲大奖赛 有10个评委进行打分 将评分按降序排列 试编程求这位选手的平均得分 去掉一个最高分和一个最低分 指导 这道题的核心是排序 将评委所打的10个分数利用数组按降序排列 计算数组中除第一个和最后一个分数以外的数的
  • Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path

    今天使用axis2访问https格式的webservice 遇到了这个错误Caused by javax net ssl SSLHandshakeException sun security validator ValidatorExcep
  • jupyter notebook安装过程中碰到的问题:1、juepyter notebook按new创建新文件时弹出来的网页是4042、jupyter代码运行时直接跳到下一行没有运行代码

    1 juepyter notebook按new创建新文件时弹出来的网页是404是浏览器的问题 更换默认浏览器即可在系统中搜索默认应用把web浏览器改成edge 如果在更改时一直闪退无法更改默认浏览器可能是你的电脑管家工具箱的浏览器帮你自动锁
  • Linux获得管理员权限

    一 判断此时使用用户是否具有管理员权限 1 采用符号 进行判断 若使用具有管理员权限的用户登录时 将出现 符号 若使用不具有管理员权限的用户登录时 将出现 符号 2 使用uid gid 的group进行判断 具有管理员权限的用户将与root
  • TypeScript 快速上手学习系列 —— 接口

    TypeScript 接口 TypeScript 接口是一系列抽象方法的声明 是一些方法特征的集合 这些方法都是抽象的 需要由具体的类去实现 然后第三方就可以通过这些抽象方法调用 让具体的类执行具体的方法 定义 TypeScript 接口定
  • 以太坊智能合约安全监测工具 Oyente

    金色财经讯 2017年6月19日 数字资产管理公司Melonport AG与Oyente的开发者们合作 发布了一个测试版分析工具 旨在检查可执行的分布式代码合同 EDCC 的缺陷 Melonport和Oyente发布Bug检查工具 来源 金
  • Java多版本环境并存配置

    安装准备 Windows10 java8的jdk java15的jdk 本次操作是在Windows10的系统下进行的 注意 可能java对中文支持的原因 最好java环境和程序使用的路径中不要包含中文 java8 java8最简单的方式就是