一、背景知识
说起来,搞 Ja va 开发的人,谁电脑里没装过好几个版本的 JDK?比方说,一边是经典的 Ja va 8 稳如泰山,另一边是 Ja va 17 的新特性让人心痒。可问题是,在 Windows 系统上,这两个版本怎么和平共处,还得想用哪个就切哪个,这就全靠环境变量来调度了。这篇文章就专门聊聊这个事儿,怎么把多个 Ja va 版本安排得明明白白的。
二、步骤详解
1. 配置系统变量:CLASSPATH和PATH
CLASSPATH 这玩意儿,说白了就是 Ja va 程序运行时去翻箱倒柜找库文件的路径。如果你手头有好几个 JDK,那就得更讲究点,得让系统知道去哪里找对应版本的类库。
- 先敲开系统属性的大门,点进环境变量面板。
- 在系统变量那一栏,点击新建,起名叫
CLASSPATH,然后把下面的内容填进去:
.;%JA VA_HOME%\lib;%JA VA_HOME%\lib\dt.jar;%JA VA_HOME%\lib\tools.jar

留意一下这里的 %JA VA_HOME%,它就像个灵活的指针,会根据你当前选的 Ja va 版本自动找到对应的路径。
搞定了 CLASSPATH,接下来轮到 Path 变量出场:
- 在系统变量里翻到
Path,点编辑。 - 在弹出的编辑环境变量框里,点新建,把下面这两行依次加进去:
%JA VA_HOME%\bin
%JA VA_HOME%\jre\bin

这么一来,系统就会乖乖跟着 %JA VA_HOME% 的指向,去对应的目录里找 ja vac、ja va 这些工具了。
2. 设置多个JA VA_HOME变量
想让版本切换丝滑,光有一个 JA VA_HOME 可不够。通常的做法是,在系统变量里把每个版本的 JDK 都注册一下。举个例子,假设系统里定义了五个 JA VA_HOME 指向不同的 JDK 路径:
- 再次进入系统属性的环境变量面板。
- 在系统变量区域,点击新建,依次添加如下变量(具体路径以你电脑上的为准):
| 变量名 | 变量值 | 说明 |
|---|---|---|
JA VA_HOME | %JA VA_HOME17% | 选择Ja va 17作为默认版本 |
JA VA_HOME11 | D:\environment\Ja va\JDK\JDK11.0.25 | 指向Ja va 11的安装目录 |
JA VA_HOME17 | D:\environment\Ja va\JDK\JDK17.0.12 | 指向Ja va 17的安装目录 |
JA VA_HOME21 | D:\environment\Ja va\JDK\JDK21 | 指向Ja va 21的安装目录 |
JA VA_HOME8 | D:\environment\Ja va\JDK\JDK1.8.0_212 | 指向Ja va 8的安装目录 |

这里,%JA VA_HOME17% 和 JA VA_HOME11 这些变量,分别指向了不同版本的 JDK 安装目录。想切换版本,核心就是改一个地方——让 JA VA_HOME 这个变量,去指向你想要的版本代号。
3. 选择和切换不同版本的Ja va
假设现在想用 Ja va 17 跑一个项目,操作简单到离谱:直接把 JA VA_HOME 的值改成 %JA VA_HOME17%,保存,关窗口。整个世界就安静了,系统里任何引用 %JA VA_HOME% 的变量,都会自动切换到 Ja va 17 的路径上。
%JA VA_HOME17%
这才是真正方便的地方——不用在 Path 里捣来捣去,只改一个变量名,所有依赖它的地方就全部同步更新。如果想切回 Ja va 8,同理,把 JA VA_HOME 改成 %JA VA_HOME8% 就行了。
4. 验证配置
配置搞定了,心里还是有点发虚?打开命令提示符(CMD),直接敲一句咒语:
ja va -version
如果一切顺利,屏幕上就会准确显示出当前选定的 Ja va 版本。切了版本之后,再跑一遍这个命令,版本号对应的变化就是最好的确认函。


三、总结
说到底,在 Windows 上管理多版本 Ja va,核心就是抓住了三个关键点:
- 用
%JA VA_HOME%做统一并发中心,改动它一个,就等于下了全局切换指令; - 把
Path和CLASSPATH都当作%JA VA_HOME%的下游,确保它们能自动跟随当前版本; - 验证环节一定不要偷懒,一条
ja va -version就能看清底牌。