Sublime GUI启动不继承shell PATH,导致javac、go、g++、python等命令找不到;需通过修改shell配置文件(macOS/Linux)或系统环境变量(Windows)并重启Sublime,或在Settings–User中硬编码env PATH。

Sublime 启动后找不到 javac、go、g++ 或 python,不是插件没装对,而是它压根没读到你终端里生效的环境变量——GUI 启动方式(双击图标、开始菜单)在 macOS/Linux/Windows 上都不自动继承 shell 的 PATH。
为什么终端能跑命令,Sublime 却报 “command not found”
macOS 和 Linux 下,图形界面应用启动时绕过 ~/.zshrc 或 ~/.bash_profile;Windows 从开始菜单启动 Sublime,用的是旧进程的环境变量快照,哪怕你刚改完系统 PATH,不彻底退出所有 subl.exe 进程就无效。
- 验证方法:终端里运行
which javac或which go,记下完整路径(如/usr/lib/jvm/jdk-17.0.1/bin/javac) - 再在 Sublime 里按
Ctrl+`打开控制台,输入import os; print(os.environ.get('PATH')),对比是否包含上述路径 - 若不包含,说明环境变量没透传进来
macOS/Linux:必须改 shell 初始化文件 + source
别只改 /etc/environment 或图形界面设置,那些对 Sublime 无效。真正起作用的是你当前 shell 的初始化文件:
- zsh 用户(macOS Catalina 及之后默认):编辑
~/.zshrc,加一行export PATH="/Applications/Sublime Text.app/Contents/SharedSupport/bin:/usr/local/go/bin:$PATH" - bash 用户:改
~/.bash_profile(不是.bashrc,GUI 启动读的是前者) - 改完必须执行
source ~/.zshrc,否则新终端也读不到 - 然后彻底退出 Sublime(右键 Dock 图标 → “退出”,不是关窗口),再从终端用
open -a "Sublime Text"或subl .启动
Windows:PATH 必须进“系统变量”,且 subl.exe 要存在
用户变量不够,Sublime GUI 启动只认系统级 PATH;而且前提是 subl.exe 真的存在:
- 先确认安装目录下有
subl.exe(默认路径:C:\Program Files\Sublime Text\subl.exe;便携版通常没有) - 右键“此电脑”→“属性”→“高级系统设置”→“环境变量”,在“系统变量”里的
Path中新增该目录(不是子目录) - 改完后,**必须关闭所有 CMD/PowerShell/Windows Terminal 窗口,再新开一个,运行
subl --help验证** - 最后右键任务栏 Sublime 图标 → “退出”,再点击开始菜单重新打开
兜底方案:直接在 Sublime Settings–User 里硬编码 env
如果改 shell 或系统变量仍不稳定(比如企业锁死环境变量、多 JDK 切换频繁),就绕过 PATH,直接在 Sublime 内部指定:
打开 Preferences → Settings – User,添加:
{
"env": {
"PATH": "/usr/local/go/bin:/Users/you/.local/bin:/opt/homebrew/bin:${PATH}"
}
}
Windows 对应写法(注意分号和正斜杠):
{
"env": {
"PATH": "C:/Go/bin;C:/Users/you/go/bin;C:/Program Files/Java/jdk-17.0.1/bin;${PATH}"
}
}
这个 env 字段会覆盖 Sublime 启动时读到的所有外部环境变量,所以路径必须写全、写对——漏掉 python 或 javac 所在目录,构建系统照样失败。

















