区分关键在于“谁用、谁改”:个人电脑配系统变量最省心,公司共用电脑才考虑用户变量;系统变量对所有账户生效,用户变量仅限当前账户;修改系统变量需管理员权限,用户变量无需密码;同名变量用户变量优先。

直接说结论:区分的关键就两点——谁用、谁改。个人电脑配系统变量最省心;公司共用电脑才考虑用户变量。两个都配反而容易出问题。
生效范围不同:一个管全家,一个只管自己
系统变量对电脑上所有账户都生效,比如你装了 JDK,配在系统变量里,管理员账号、访客账号、甚至后续新建的账号,都能直接运行 java 命令。用户变量只作用于当前登录的这个 Windows 账户,换个人登录就完全看不见、用不了。
这就像家里装了总电闸(系统变量)和你房间的独立开关(用户变量)——总电闸一开,全屋通电;你房间的开关关了,只影响你自己。
修改权限不同:一个要密码,一个不用
改系统变量必须点“以管理员身份运行”系统属性窗口,否则“新建”或“编辑”按钮是灰色的。用户变量普通用户就能点开修改,不需要输管理员密码。
立即学习“Java免费学习笔记(深入)”;
常见情况:
• 你在公司电脑上没管理员权限,但又要配自己的 JDK 版本 → 只能用用户变量
• 你用自己的笔记本,只有你一个账号 → 直接配系统变量,一步到位
同名变量谁说了算?用户变量优先
如果 JAVA_HOME 在系统变量和用户变量里都被设置了,Windows 会优先采用用户变量的值。这不是bug,是设计逻辑:个性化覆盖通用配置。
但这也意味着:
• 两边都设了 JAVA_HOME,实际生效的是用户变量那个路径
• 如果你忘了用户变量里也配过,改完系统变量却没效果,就会一头雾水
• 所以强烈建议:只选一种,别混着来
怎么选?看你的使用场景
个人开发机(比如拯救者 R7000P、MacBook):配系统变量。PATH、JAVA_HOME 全局生效,IDEA、VS Code、终端、甚至需要管理员权限的工具(如某些 Maven 插件)都能正常识别。
公司办公机 / 多人共用电脑:配用户变量。不干扰同事环境,也不需要找 IT 申请管理员权限,版本升级或卸载也只影响你自己。
只想让某个 IDE 用特定 JDK:其实根本不用配环境变量。IDEA、Eclipse 都支持在设置里单独指定 JDK 路径,比改系统更灵活、更安全。


















