在 Windows 环境配置多版本 Java

无论是为了准备 OO 课程,还是游玩 Minecraft,多版本 Java 的需求都不可避免。接下来将介绍在 Windows 环境下配置多版本 Java 环境的教程,帮助读者方便地进行配置和切换。

当然,IDEA 可以读取所有 Java 运行环境,并且通过 GUI 界面简单地切换,并且高版本的 Java 可以设置语言级别以满足 OO 课程对 Java 1.8(JDK8)的要求。本文目的是为了便于管理多版本 Java,以及配置默认的命令行界面 Java 版本。

安装前必读

关于 JDK 和 JRE

在配置 Java 环境时,常常会遇到 JDK 和 JRE 两个概念。JDK(Java Development Kit)是 Java 的开发工具包,包含了编译器(javac)、调试工具等开发所需的全部内容。JRE(Java Runtime Environment)则是 Java 的运行环境,仅包含运行 Java 程序所需的库和虚拟机(JVM),不包括编译器。

一般来说,如果你只是运行 Java 程序,安装 JRE 即可;但如果需要开发 Java 应用或编译 Java 代码,则必须安装 JDK。JDK 通常自带一个 JRE,因此只安装 JDK 即可满足大多数需求。

Java 8 及之前的版本,JDK 安装目录下通常会包含一个 jre 子文件夹,这是因为 JDK 会自带一个完整的 Java 运行环境(JRE),方便开发者既能编译也能直接运行 Java 程序。

从 Java 9 开始,Java 官方引入了模块化(Project Jigsaw),并对 JDK 的目录结构进行了简化和调整。JRE 不再作为单独的文件夹存在,而是直接集成在 JDK 的主目录中。这样做的原因包括:

  • 减少冗余:JDK 和 JRE 之间很多内容是重复的,合并后可以减少磁盘空间占用。
  • 模块化设计:新版本的 Java 支持按需定制运行环境,不再需要单独的 JRE 文件夹。
  • 简化维护:统一目录结构,方便管理和升级。

总结:
Java 8 及之前版本的 JDK 目录下有 jre 文件夹,是为了方便开发和运行;而高版本(Java 9 及以后)则将 JRE 集成到 JDK 主目录,目录结构更简洁,没有单独的 jre 文件夹。

关于 Oracle 版本和其他版本

目前主流的 Java 发行版有甲骨文(Oracle)、OpenJDK、AdoptOpenJDK(现为 Adoptium)、Amazon Corretto、Zulu 等。甲骨文版本是官方发布的标准版本,适合企业级应用,但部分版本需要商业授权。OpenJDK 是开源实现,功能与甲骨文版本基本一致,适合个人和开源项目使用。其他发行版如 Adoptium、Corretto、Zulu 等,都是基于 OpenJDK 进行优化和维护,通常提供更灵活的安装方式和长期支持。

在配置多版本环境时,可以根据实际需求选择不同发行版。一般来说,开发和学习推荐使用 OpenJDK 或 Adoptium,企业生产环境可考虑甲骨文或其他获得官方支持的版本。不同发行版的安装和配置方式类似,主要区别在于下载渠道和授权协议。

在多版本配置时,建议优先配置 JDK 的路径为环境变量,这样既能运行程序,也能编译代码,避免因环境变量指向 JRE 导致无法使用 javac 等开发工具。

一、下载安装包

官网地址:Java 存档

Oracle 官方的 JDK8 需要注册甲骨文账号,如果嫌麻烦可以下载其他发行的 JDK8。如果单纯 OO 编程也可以使用高版本调语言模式。

右侧选择合适的版本:

选择 Java SE Development(JDK),选择 Windows 对应的压缩文件(不同版本名字不一样,选择 Windows 前缀的 zip 压缩包即可)。由于我们需要自己配置多版本环境变量,这里不能使用 exe 自动安装程序。

二、安装 Java 和配置环境变量

下载完压缩包后解压放置到合适的目录(不含中文,可以不是 C 盘)。

可以统一将顶层文件夹重新命名为 jdk-x(x 为版本号),方便后续快速管理。

顶层文件夹下应该为 bin、jre 等文件夹,解压时注意嵌套关系。

接下来配置环境变量,一共需要配置三项内容:JAVA_HOME、CLASSPATH 和 PATH。
在系统变量(不是用户变量)进行修改。

CLASSPATH :
变量名:CLASSPATH
变量值:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

JAVA_HOME:
变量名:JAVA_HOME
变量值:%JAVA_HOME_X%(X 需要换为实际数字)

JAVA_HOME_X:
变量名:JAVA_HOME_X
变量值:刚才你安装 JDK 的目录,如 D:\java\jdk-24

这样,使用多版本时,只需要下载新的 Java,配置一个新的 JAVA_HOME_X,将其值设置为新的 Java 主目录,然后在需要使用时修改 JAVA_HOME 的值即可。

PATH:
选中 PATH,点击编辑进入 PATH 内部,然后点击右侧“新建”按钮,新建两条:

  • %JAVA_HOME%\bin
  • %JAVA_HOME%\jre\bin(只有 Java8 需要该项,但是高版本也加了不影响,因此要加入环境变量)

之后点击确认(一定要点确认,不要直接点叉,否则不会保存)。

现在我们来测试一遍:

1
2
java -version
javac -version

关闭当前 cmd(防止没有及时生效)后,修改 JAVA_HOMEJAVA_HOME_24JAVA_HOME_8

再次运行:

java 和 javac 都可以成功运行了,多版本配置完成!

额外内容

如果需要修改运行 .jar 文件的默认 Java 版本,可以切换后使用命令行运行:

1
javaw -jar xxx.jar

但是想要设置双击的默认运行,需要修改注册表:

  1. Win+R 键,打开“运行”
  2. 输入“regedit”,打开注册表
  3. 找到
1
2
HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command
HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command

分别修改为你的路径:

1
2
"D:\java\jdk-24\bin\java.exe" -jar "%1"
"D:\java\jdk-24\bin\javaw.exe" -jar "%1"

然后把 jar 文件右键,设置打开方式为 D:\java\jdk-24\bin\java.exe(你的实际路径)就可以双击运行了。

jar 包双击运行仅对于图形化界面的程序起作用,对控制台的程序不起作用。

  • java.exe 适合用于启动 Windows 控制台程序
  • javaw.exe 适合用于启动 GUI 程序
  • javaws.exe 适合用于 Web 程序