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,使系统能在任意目录下找到 java、javac 等命令
CLASSPATH 指定类文件的搜索路径(JDK 9+ 通常无需配置)

三、常见问题排查

问题现象 可能原因与解决方案
输入 java --version 提示"不是内部或外部命令" 1. 检查 Path 中是否已添加 %JAVA_HOME%\bin 2. 确认 JAVA_HOME 路径正确(路径下应有 bin 文件夹) 3. 重新打开命令行窗口
java --version 与 javac --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-17、D:\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程序了!

相关推荐
夜之眷属11 分钟前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm
海码事务所12 分钟前
Google Play 新个人开发者账号上架指南:12 人连续 14 天封闭测试怎么做?
前端
波加曼大王13 分钟前
# vLLM不要迷信PagedAttention神话,聊聊线上藏着的内部碎片陷阱
java·架构
zw_onemaker_ai14 分钟前
开源一条 14 角色 AI 交付管线:从 3 个零依赖 Demo 讲起
人工智能·ai编程
田威AI16 分钟前
图片内文字翻译的规格:输入输出、保真、自动化、时间与费用
前端·计算机视觉
SL_staff18 分钟前
目标健康度自检清单:开发者视角下的目标-计划-任务链路断点诊断
java·开源·github
for_ever_love__21 分钟前
MySQL 高频面试题 30 问:索引、事务、锁、日志、主从与分库分表(MySQL 8.0 版)
java·数据库·spring boot·mysql·spring cloud·面试·总结
神仙别闹23 分钟前
基于C++实现的贪吃蛇游戏平台
java·c++·游戏
不可能片场26 分钟前
命令行中文变问号 我用环境变量救了场
前端·electron
每天都是不一样的太阳31 分钟前
AI成长系列-08-技术写作与汇报
ai编程