notepad++本身不运行erlang,仅调用系统已安装的erlc或erl;能否成功执行取决于本地erlang环境是否就绪、路径是否可访问及参数传递是否正确,需先确认erlc和erl在cmd中可用,再配置path并重启notepad++。

Notepad++ 本身不运行 Erlang,它只负责调用系统已安装的 erlc 或 erl;能否成功执行,完全取决于你本地 Erlang 环境是否就绪、路径是否可访问、以及 Notepad++ 是否能正确传递路径和参数。
确认 erlc 和 erl 已在 CMD 中可用
这是所有后续配置的前提。Notepad++ 的 Run 或 NppExec 都依赖系统 PATH 查找命令,不是“配置 Notepad++”就能绕过这步。
- 打开 CMD,输入
erlc -v和erl -version—— 至少前者必须返回版本号(如Erlang/OTP 26),否则后续全部失败 - Windows 上常见问题:Erlang 安装在
C:\Program Files\erl-26.0这类含空格路径,CMD 能识别但 Notepad++ 的 Run 命令常因引号缺失或解析错误失败 - 推荐做法:把
erlc.exe和erl.exe所在目录(通常是bin子目录)手动加进系统 PATH,然后彻底关闭并重启 Notepad++(仅新建窗口无效) - macOS/Linux 用户注意:GUI 应用(包括 Notepad++ via Wine 或 WSL GUI)通常不继承 shell 的 PATH,
which erlc返回的路径必须硬编码进配置中
用 Run → Run(F5) 编译单个 .erl 文件
适合快速验证语法、编译小模块,不支持传参、无错误跳转、不捕获 stderr。
ArcGIS for Android SDK 目前最新版本为10.2.5 从此版本开始ESRI不在提供Eclipse的插件支持,官方的帮助也针对于Android Studio的支持;本文档主要讲述的内容是最新版本ArcGIS For Android Eclipse环境配置;感兴趣的朋友可以过来看看
- 按 F5,输入:
"C:\Progra~1\erl-26.0\bin\erlc.exe" "$(FULL_CURRENT_PATH)"—— 强烈建议用短路径(如Progra~1)或复制erlc.exe到无空格目录(如D:\erlang\bin\erlc.exe),避免引号嵌套混乱 - 不要写成
erlc $(FULL_CURRENT_PATH):如果 PATH 没生效,会报'erlc' is not recognized;如果 PATH 生效但路径含空格且没引号,会截断为C:\Program导致找不到文件 - 编译输出默认在当前目录生成
.beam文件;若要指定输出目录,加-o ./ebin参数,例如:"C:\erlang\bin\erlc.exe" -o ./ebin "$(FULL_CURRENT_PATH)" - 保存时命名如 “Compile Erlang”,快捷键设为 Ctrl+F7,避免覆盖 F5(F5 默认被其他插件占用)
用 NppExec 实现带参数、可跳转错误行的编译流程
NppExec 是实际开发中更可靠的选择,尤其当你需要反复编译、查看错误位置、或配合 rebar3 使用时。
- 先通过「插件 → 插件管理」安装 NppExec(Notepad++ 7.9+ 可直接在线安装)
- 打开「插件 → NppExec → Execute…」,输入以下脚本:
cd $(CURRENT_DIRECTORY) "C:\erlang\bin\erlc.exe" +debug_info -o ./ebin $(NAME_PART).erl npp_console 1
-
$(NAME_PART)自动去掉扩展名,比$(FILE_NAME)更安全(避免误传module.erl.erl) -
+debug_info是必须项,否则后续用erl加载时看不到源码行号,NppExec 无法跳转 - 勾选「Follow console output with caret」后,只要错误格式是
module.erl:12: syntax error before: 'end',光标就会自动跳到第 12 行 - 若项目使用 rebar3,把第二行换成:
rebar3 compile && rebar3 eunit(需确保rebar3在 PATH 中,且当前目录是 rebar.config 所在根目录)
中文路径和文件名导致编译失败或乱码
这不是 Erlang 的 bug,而是 Windows 控制台编码与 Notepad++ UTF-8 文件之间的错位,尤其在 io:format 输出或错误信息含中文时明显。
- 最稳妥解法:把 Erlang 源文件、项目路径全改为英文(如
D:\erlang_proj\src\hello.erl),彻底规避问题 - 临时缓解:在 NppExec 脚本开头加
cmd /c chcp 65001 >nul &&,变成:cmd /c chcp 65001 >nul && "C:\erlang\bin\erlc.exe" ... - 不要尝试改 Erlang 源文件的 BOM 或编码声明——Erlang 解析器不认 UTF-8 BOM,反而会报
syntax error before: '' - rebar3 项目若含中文路径,
rebar3 compile会静默失败(无任何输出),此时必须切到英文路径下操作
真正卡住的点往往不在 Notepad++ 设置里,而在 erlc 是否真能被调起、当前工作目录是否对、以及 beam 文件是否生成到了预期位置——建议每次编译后手动检查 ./ebin/ 目录是否存在对应 .beam 文件。










