安装准备:
Windows10、java8的jdk、java15的jdk
本次操作是在Windows10的系统下进行的
注意:可能java对中文支持的原因,最好java环境和程序使用的路径中不要包含中文
java8
java8最简单的方式就是从腾讯软件中心去下载,在搜索框内输入jdk,搜索结果的第一个就是java8的安装包。
java15
下载地址:http://jdk.java.net/java-se-ri/15
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#