atom本身不编译运行代码,所有操作本质是调用系统命令;script插件因在node子进程执行、不继承shell环境变量,故常报“command not found”,应改用platformio-ide-terminal并确保通过atom .启动。

javac、gcc、python3 等命令——路径没配对、终端没继承环境变量、插件选错,就必然失败。
为什么 script 插件点一下就报 “command not found”
这不是插件坏了,是它根本没找到你装的解释器或编译器。script 插件在 Node.js 子进程中执行命令,不读取你的 shell 配置(比如 ~/.zshrc),也不继承桌面启动时的 PATH。
- 在系统终端里能跑
javac -version,不代表 script 能调用它 - Windows 用户常见:装了 JDK,但没把
JDK_HOME\bin加进系统 PATH,或加了却没重启 Atom - macOS/Linux 用户常见:
which javac有输出,但 Atom 是双击图标启动的,没加载 shell 的环境变量 - 验证方式:打开
platformio-ide-terminal,直接输javac -version或gcc --version,没输出就说明环境变量根本没生效
platformio-ide-terminal 是唯一靠谱的终端入口
Atom 没有内置终端,platformio-ide-terminal 是目前唯一持续维护、支持 PTY 信号、能正确读取登录 shell 环境的终端插件。别用已归档的 atom-terminal-tab 或其他老插件。
- 安装后按
Ctrl+`打开,但前提是:你得先通过atom .(在项目根目录下)启动 Atom,否则快捷键无效 - 必须勾选设置里的 Run command in login shell,否则
pyenv、nvm、java全部失效 - Linux/macOS 下若仍找不到命令,检查终端里
echo $PATH输出是否和系统终端一致;不一致就说明没走登录 shell - Windows 上 Git Bash 用户需在
Shell Override填完整路径,例如:C:\Program Files\Git\bin\bash.exe
Java 编译运行必须满足的四条硬规则
哪怕 javac 和 java 都能调通,只要漏掉其中一条,就会报 NoClassDefFoundError 或 ClassNotFoundException,而不是语法错误。
- 源文件路径必须匹配包声明:想运行
com.example.Hello,文件就得放在src/com/example/Hello.java,不能是src/Hello.java - 文件首行必须是
package com.example;,且类名严格为public class Hello(大小写、拼写、public 关键字缺一不可) - 编译要用
javac -d out src/com/example/Hello.java,-d指定的是输出根目录,不是单个 class 文件路径 - 运行前必须
cd out,再执行java com.example.Hello(注意是点号,不是斜杠;也不能带.class后缀)
别指望 script 插件处理交互或复杂构建
script 插件适合单文件快速验证,但它的 stdin 和工作目录控制极弱,遇到真实开发场景几乎必崩。
- 含
input()(Python)或Scanner(Java)的代码,script 默认卡住——必须手动开启Use Terminal,且它不会自动cd到文件所在目录 - 多文件 Java 项目、带
lib/依赖、需要指定-cp的情况,script 完全无解,得切到platformio-ide-terminal手动敲命令 - SQL、Go、Rust 等语言,script 默认行为基本不可靠;比如
.sql文件会尝试调sql命令,而系统根本没这个可执行文件 - 真正省事的做法:用终端写好常用命令 alias,比如
alias jrun='cd out && java com.example.Hello',然后在插件终端里一键复用











