当我们需要在一台物理机上使用不同版本的JDK时,同时安装和自由切换不同版本的JDK就成了我们需要掌握的技能。
一:安装的具体步骤
1:下载所需要不同版本的JDK,放置于物理机。(如:D:\JAVA\JDK)
2:将不同版本的JDK分别命名,并放置于D:\JAVA\JDK
- jdk_1.8: D:\JAVA\JDK\jdk_1.8
- jdk_1.11 D:\JAVA\JDK\jdk_1.11
注意:这里笔者建议需要统一JDK的类型,既jdk8和jdk11均使用解压版,若使用安装版则需要将C:\Windows目录或 C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个文件,因为这里涉及到执行优先级的问题,(C:\Windows\System32目录优先级高于JAVA_HOME配置目录,存在可能导致JDK版本切换不生效的问题。)
3:配置环境变量
- jdk_1.8
配置JAVA_HOME变量:变量名:JAVA_HOME8 变量值:\JAVA\JDK\jdk_1.8
配置path变量: \JAVA\JDK\jdk_1.8\bin
(2)jdk_1.11
配置JAVA_HOME变量:变量名:JAVA_HOME11 变量值:\JAVA\JDK\jdk_1.11
配置path变量: \JAVA\JDK\jdk_1.11\bin
(4)最重要的一步(事关自由切换JDK版本):由于环境变量执行的优先级是从上到下(从左到右、从前到后),因此在JAVA_HOME变量设置时:设置一个变量名为:JAVA_HOME 变量值为:%JAVA_HOME% 且放置于JAVA_HOME8和JAVA_HOME11之前。
若需要执行JDK8,则在JAVA_HOME的变量值更改为“%JAVA_HOME8”
若需要执行JDK11,则在JAVA_HOME的变量值更改为“%JAVA_HOME11”
二:关于配置classpath的问题
classpath翻译过来就是类路径,是Java环境变量配置中要设置的一个环境变量值,就是.class文件的路径,表示JVM需要去哪里寻找要运行的class文件,当我们配置classpath后,系统会根据我们所配置的classpath加载类。不少同学在搜索配置JDK环境变量时,大部分博文都要求要配置classpath,但也有部分同学表示自己没有配置classpath,仅配置了环境变量中的JAVE_HOME和path变量,程序依然正常执行。
对于这个问题笔者查阅了官方文档,得到的答案是:在JDK1.5之后,classpath并不是必须的配置;在JDK1.5之前,因为无法在当前目录下加载类(既找不到 JDK目录下lib文件夹中的.jar文件),所以需要通过配置classpath。但JDK1.5之后,JRE能自动搜索目录下的类文件,并且加载dt.jar和tool.jar的类。但若你使用的是JDK1.5之前的版本,需要毫不犹豫地配置classpath。
Classpath相关解释:
配置内容:.;%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar
- . 表示当前路径。
(2)JAVA_HOME:代表JDK文件的路径。
(3);表示有多个可执行的class文件目录,用;隔开。
(4)dt.jar是关于运行环境的类库,主要是用于swing的包,如果不使用可以不配置。
(5)tools.jar是工具类库