Notepad++运行Groovy脚本需先确保Java和Groovy环境可用,正确配置PATH并重启编辑器;使用$(FULL_CURRENT_PATH)宏避免路径空格问题,添加-Dfile.encoding=UTF-8防止中文乱码,NppExec中需显式切换工作目录并启用无缓冲输出。

Notepad++ 运行 Groovy 脚本前,必须确认 Java 环境可用
Notepad++ 本身不执行 Groovy,它只是调用 java 或 groovy 命令。如果 java -version 或 groovy -v 在 CMD 中报“不是内部或外部命令”,那所有一键运行配置都会失败。
检查方式:打开 CMD,依次执行:
-
java -version—— 必须返回版本号(Groovy 依赖 JVM) -
groovy -v—— 若已安装 Groovy SDK,应显示 Groovy 版本;若未安装,需先下载并配置GROOVY_HOME和PATH
常见疏漏:
- 只装了 JDK,没装 Groovy SDK(
groovy命令不存在) - 装了 Groovy 但没把
%GROOVY_HOME%\bin加进系统PATH - 改完环境变量后没重启 Notepad++(它启动时就缓存了 PATH)
用 Run 菜单一键运行 Groovy:路径宏和空格是最大陷阱
菜单 → Run → Run(F5),输入以下命令并保存为 “Run Groovy”:
立即学习“Java免费学习笔记(深入)”;
cmd /k groovy -Dfile.encoding=UTF-8 "$(FULL_CURRENT_PATH)" & pause
关键点说明:
-
$(FULL_CURRENT_PATH)已自带双引号,**绝不能**再手动加引号,否则变成"\"C:\a b\test.groovy\"",CMD 解析失败 - 含中文路径或空格时,仅靠
$(FULL_CURRENT_PATH)就能正确传递——这是唯一可靠路径宏;$(FILE_NAME)或$(NAME_PART)没路径,import会直接报ModuleNotFoundError -
-Dfile.encoding=UTF-8强制 JVM 使用 UTF-8,避免中文乱码(比改终端chcp 65001更稳定) -
& pause防止控制台闪退;不用cmd /k ... & exit,否则pause不生效
NppExec 执行 Groovy 脚本:缓冲与工作目录要手动干预
如果你用 NppExec 插件(推荐),执行命令建议写成:
npp_console 1 cd "$(CURRENT_DIRECTORY)" groovy -Dfile.encoding=UTF-8 -u "$(FULL_CURRENT_PATH)"
这里几个硬性细节:
-
npp_console 1启用内置控制台,避免弹新 CMD 窗口 -
cd "$(CURRENT_DIRECTORY)"显式切换工作目录——Groovy 脚本里用相对路径new File("conf.txt")才能找得到文件 -
-u参数强制无缓冲输出,否则println可能卡住不显示,尤其脚本末尾没input()时 - 不要省略
-Dfile.encoding=UTF-8:Groovy 默认用系统编码(如 GBK),读写中文文件极易出错
Groovy 语法高亮配好了,但右下角还是显示 Normal text?
导入 Groovy.xml 后仍不生效,90% 是缓存或绑定问题:
- 必须完全退出 Notepad++ 再重开——“重新加载”或“刷新”无效
- 已打开的
.groovy文件不会自动重载语言,右键标签页 → “重新载入为” → “Groovy” - 检查是否多个语言都声明了
groovy扩展名:设置 → 首选项 → 文件关联,确认没有 Java、XML 或其他 UDL 抢占了groovy -
Groovy.xml文件本身必须是 UTF-8 无 BOM 编码,否则日志里会报Failed to load userDefineLang
真正难处理的是 Groovy 特有语法:三重引号字符串("""...)、闭包参数列表({ a, b -> })、GString 插值("$x")——UDL 的正则引擎无法做语义解析,高亮遗漏是机制限制,不是你配错了。


















