Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”

这是一个 Java 快速入门项目,非常适合用来练手。相关源码已上传至 GitHub,👉 点击查看 GitHub 仓库。欢迎交流指正、提交 issue。

安装 JDK 后,若在终端执行 java --version 提示"不是内部或外部命令",说明环境变量未正确配置。本文介绍 Windows 系统下 Java 环境变量的配置方法。

一、配置环境变量

1. 打开环境变量设置界面

  • 方法一(推荐) :快捷键 Win + R → 输入 sysdm.cpl → 回车 → 选择"高级"选项卡 → 点击"环境变量"
  • 方法二:右键"此电脑" → 属性 → 高级系统设置 → 环境变量
  • 方法三Win + S 搜索"编辑系统环境变量" → 点击打开

2. 新建 JAVA_HOME 变量

在"系统变量"区域点击【新建】:

  • 变量名JAVA_HOME
  • 变量值 :填写 JDK 安装根目录(例如 D:\Java\jdk-21

注意 :变量值应为 JDK 根目录,不要包含 \bin

3. 编辑 Path 变量

在"系统变量"中找到 Path,双击打开:

  • 点击【新建】,添加条目:%JAVA_HOME%\bin

提示:建议将此条目上移至靠前位置,避免与其他 Java 版本冲突。

4. (可选)配置 CLASSPATH

现代 JDK(JDK 9+)通常无需手动配置。如需配置,可新建系统变量:

  • 变量名CLASSPATH
  • 变量值.;%JAVA_HOME%\lib

注意 :开头的 . 表示当前目录,不可省略。

5. 保存并验证

  1. 依次点击"确定"保存所有设置

  2. 重新打开一个 CMD 或 PowerShell 窗口(必须新开)

  3. 执行以下命令验证:

    bash 复制代码
    java --version
    javac --version

    若两个命令均正确输出版本号(示例如下),则配置成功:

    text 复制代码
    java version "21.0.x" 202x-xx-xx LTS
    Java(TM) SE Runtime Environment (build 21.0.x+xx-xx)
    Java HotSpot(TM) 64-Bit Server VM (build 21.0.x+xx-xx, mixed mode)
    
    javac 21.0.x

二、环境变量说明

变量名 作用
JAVA_HOME 指向 JDK 安装根目录,便于其他变量引用,也被众多开发工具依赖
Path 添加 %JAVA_HOME%\bin,使系统能在任意目录下找到 javajavac 等命令
CLASSPATH 指定类文件的搜索路径(JDK 9+ 通常无需配置)

三、常见问题排查

问题现象 可能原因与解决方案
输入 java --version 提示"不是内部或外部命令" 1. 检查 Path 中是否已添加 %JAVA_HOME%\bin 2. 确认 JAVA_HOME 路径正确(路径下应有 bin 文件夹) 3. 重新打开命令行窗口
java --versionjavac --version 版本不一致 Path 中存在多个 Java 路径,将新配置的 %JAVA_HOME%\bin 上移,或删除旧的 Java 路径
JAVA_HOME 路径含空格(如 Program Files Path 中使用 "%JAVA_HOME%\bin"(加双引号),或将 JDK 安装到无空格路径(如 D:\Java\jdk-21
在 PowerShell 中验证配置 执行以下命令检查: $env:JAVA_HOME(查看 JAVA_HOME 值) $env:Path -split ";"(查看 Path 所有条目)

四、多版本 JDK 切换(进阶)

若需安装多个 JDK 版本(如 JDK 17、JDK 21),可将其安装到不同目录(例如 D:\Java\jdk-17D:\Java\jdk-21)。

切换方法

  1. 手动切换 :修改 JAVA_HOME 变量值,指向目标版本的 JDK 根目录。
  2. 工具管理 :使用第三方工具(如 jenv)进行多版本管理,可自动切换环境变量。

提示 :修改 JAVA_HOME 后,需重新打开命令行窗口生效。

五、总结

配置Java环境变量的核心三步:

  1. 设置 JAVA_HOME → JDK安装路径
  2. 编辑 Path → 添加 %JAVA_HOME%\bin
  3. 验证 → 终端输入 java --version 或 javac --version 命令

配置完成后,就可以在任意目录下编译和运行Java程序了!

相关推荐
FreeTinker2 小时前
HTML本地存储技术解析:localStorage与sessionStorage的原理、差异与应用场景
前端·html
qq_452396232 小时前
第十二篇:《全链路监控与可观测性:前端错误追踪与性能分析》
前端
许雪里2 小时前
XXL-BOOT v2.1.0 发布:React 全新上线 · 全栈 TypeScript · AI+SKILL 驱动开发
ai编程
EXI-小洲3 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
wangruofeng3 小时前
Phosphor Icons 官网源码拆解:URL 即存储、水波动画与 7362 Star 图标库的架构实践
前端·架构·github
AI砖家3 小时前
Kimi K3 本地部署全解析:需要什么配置的电脑,到底要花多少钱?
人工智能·ai编程
BigTopOne3 小时前
WebRTC Native / Android 开发学习资源整理
前端
2601_961901704 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring
excel4 小时前
nuxt 3 升级 nuxt 4 报错之 hasInjectionContext
前端