作为一名Java程序员,我们经常需要在不同的Java版本下运行我们的应用程序,或者,我们想在不同Java版本上尝试运行我们的代码。当然,如果你在IDE下工作,可以非常轻松地切换Java版本(大部分IDE都提供该功能),但是如果你只想在CMD下运行Java程序,而又不想频繁地去修改系统环境变量,有什么好的办法呢?
本文将向你介绍如何在Windows中同时安装多个Java版本,以及如何通过命令行非常简单地在不同地Java版本间进行切换。
安装多个不同版本的Java在Windows中同时安装多个Java版本非常容易,你只需要下载并运行每个版本的安装程序,它们会自动安装到不同的目录中
下载不同版本的JavaJava SE 1.1 - 该版本不能运行在64位Windows上
Java SE 1.2 - 默认安装到目录C:\jdk1.2.2\和C:\Program Files (x86)\JavaSoft\JRE\1.2\ - 推荐安装到目录C:\Program Files (x86)\Java\jdk1.2.2\和目录C:\Program Files (x86)\Java\jre.1.2.2\。
Java SE 1.3 - 默认安装到目录C:\jdk1.3.1_28\ - 推荐安装到目录C:\Program Files (x86)\Java\jdk1.3.1_28\。
Java SE 1.4 - 默认安装到目录C:\j2sdk1.4.2_19\ - 推荐安装到目录C:\Program Files (x86)\Java\jdk1.4.2_19\。
下面这些版本不用修改安装目录,直接默认安装:
Java SE 5
Java SE 6
Java SE 7
Java SE 8
Java SE 9 / OpenJDK 9
Java SE 10 / OpenJDK 10
注意:以下Oracle发行版只能用于个人开发,不能应用于商业软件开发:
Java SE 11 / OpenJDK 11
Java SE 12 / OpenJDK 12
Java SE 13 / OpenJDK 13
Java SE 14 / OpenJDK 14
Java SE 15 / OpenJDK 15
Java SE 16 / OpenJDK 16
以下最新版本仅可用于测试:
JDK 17
注意,由于Oracle版权的问题,我们推荐下载OpenJDK版本:
OpenJDK
AdoptOpenJDK
环境变量大部分情况下,我们都可以通过以下两个环境变量来确定当前应用程序使用的是哪个Java版本:
JAVA_HOME - 多数脚本使用该环境变量来确定Java版本的位置。
Path - 当从控制台运行Java二进制文件(如iava和javac)时,使用的是该环境变量。
手动设置环境变量上面列出来的Java安装程序在安装过程中都会自动创建环境变量,首先我们需要手动清除掉这些环境变量。最简单的方式是使用Windows搜索栏,输入“env”,然后打开"Edit the system environment variables"。当然,你也可以打开Windows资源管理器,右键单击“我的电脑”,选择“属性”,在打开的窗口中点击“高级系统设置”,然后打开“环境变量”。
如下图所示,
"User variables"中应该不包含任何与Java相关的环境变量。
"System variables"中应该包含"JAVA_HOME"环境变量并且指向你本地所安装的其中一个Java版本的目录(我当前安装的是Java 16)。如果"JAVA_HOME"环境变量不存在,则需要手动添加。
删除“Path”环境变量中与Java相关的值,如:
C:\ProgramData\Oracle\Java\javapath
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
同时在"Path"环境变量中添加:
%JAVA_HOME%\bin
修改完之后的“Path”环境变量的值看起来像这样:
这里的“%JAVA_HOME%\bin”确保当程序查找“Path”环境变量时,找到的Java版本的位置与“JAVA_HOME”环境变量中所对应的位置是一致的。
现在打开控制台,输入下面的命令来检查以上设置是否有效:
echo %JAVA_HOME% java -version