notepad++需通过nppexec插件调用scala.bat运行scala程序,且必须先安装配置好java与scala环境;语法高亮需手动导入scala.xml并设置文件关联。

Notepad++ 本身不支持 Scala 运行,只能靠外部命令调用 scala.bat
Notepad++ 是纯文本编辑器,没有内置 JVM 或 Scala 解释器。所谓“运行 Scala”,本质是让 Notepad++ 调用系统已安装的 scala.bat(Windows 下)或 scala(Linux/macOS),把当前文件路径传给它执行。这和用命令行敲 scala Hello.scala 完全等价,只是封装了一层快捷操作。
常见错误现象:
- 点“执行”后弹窗一闪而过,没输出 —— 多半是
scala.bat没在PATH中,或环境变量未生效 - 报错
CreateProcess() failed with error code 2: 系统找不到指定的文件—— Notepad++ 找不到scala.bat,不是找不到你的 .scala 文件 - 报错
java.lang.IllegalArgumentException: name—— 路径含空格或中文,且未加引号,scala.bat解析失败
必须先装好 Java 和 Scala,并验证命令行可用
跳过这步直接配 Notepad++ 必然失败。打开 CMD,依次执行:
java -version scala -version
两者都必须返回版本号。若报“不是内部或外部命令”,说明:
-
JAVA_HOME和SCALA_HOME环境变量没设对(注意:不是只设 PATH) -
PATH里没包含%JAVA_HOME%\bin和%SCALA_HOME%\bin - Scala 安装的是 MSI 版本,但没勾选「Add to PATH」(推荐改用 ZIP 解压版,路径可控)
特别注意:scala.bat 依赖 java.exe,且对 JDK 版本敏感。Scala 2.13.x 推荐搭配 JDK 8–11;Scala 3.x 要求 JDK 11+。用 JDK 17+ 运行旧版 Scala 可能触发 UnsupportedClassVersionError。
用 NppExec 插件配置可执行命令,别用“运行”菜单
Notepad++ 的「运行 → 运行」(F5)只支持单条 CMD 命令,无法处理带空格路径、多级转义等问题。必须用 NppExec 插件,它支持脚本逻辑和变量展开。
操作步骤:
- 插件 → Plugins Admin → 搜索
NppExec→ 安装并重启 - 插件 → NppExec → Execute → 粘贴以下内容(关键:用双引号包裹路径,且用
$(FULL_CURRENT_PATH)):
cd "$(CURRENT_DIRECTORY)" scala.bat "$(FULL_CURRENT_PATH)"
点击「Save」,命名为 scala。之后可通过 Plugins → NppExec → scala 或快捷键 F6 调用。
为什么不用 scala $(FULL_CURRENT_PATH)?因为 Windows 下 scala(无 .bat 后缀)是 PowerShell 脚本,Notepad++ 的 NppExec 默认走 cmd.exe,不兼容。必须显式写 scala.bat。
文件关联和语法高亮要分开配,缺一不可
即使能运行,打开 .scala 文件还是黑底白字 —— 这是语言定义缺失,和运行无关。需手动导入 scala.xml:
- 下载社区维护的
scala.xml(如 GitHub 上azizkhan1985/notepad-plus-plus-scala仓库的最新版) - 放入
%APPDATA%\Notepad++\userDefineLangs\scala.xml(注意路径和文件名,不能有空格或下划线) - 重启 Notepad++,再打开 .scala 文件 → 「语言 → S → Scala」才能看到高亮
- 最后进「设置 → 首选项 → 文件关联」,在「扩展名」栏填
scala,「语言」选scala(即scala.xml里name="scala"的值)
容易被忽略的点:NppExec 的脚本里 cd 切换目录不是可选动作,而是必须项。否则 scala.bat 在读取相对路径资源(比如 import 其他本地文件)时会因工作目录不对而失败。











