notepad++需通过nppexec插件配合jdk运行java,90%失败源于架构错配或编码未设utf-8:必须严格匹配32/64位、nppexec.dll直放plugins根目录、脚本中加npp_save和-javac -encoding utf-8。

Notepad++ 本身不带 Java 运行能力,必须靠插件(主要是 NppExec)配合 JDK 才能编译运行 Java 代码;离线安装失败、中文乱码、插件不加载,90% 是版本错配或编码没设对。
确认 Notepad++ 和插件架构是否一致
64 位 Notepad++ 无法加载 32 位 NppExec.dll,反之亦然。错误提示通常是 cannot load 32bit plugin 或菜单里根本看不到 NppExec 项。
- 打开 Notepad++ →
帮助→关于 Notepad++,看右下角写的是x86还是x64 - 去 NppExec 官方 releases 页面 下载对应架构的
NppExec.dll(例如 x64 版就选NppExec_x64.dll) - 把下载的
NppExec.dll放进plugins目录(不是plugins\NppExec子目录) - 重启 Notepad++,检查菜单栏是否出现
插件 → NppExec
用 NppExec 编译 Java 必须加 -encoding UTF-8
Notepad++ 默认保存为 UTF-8,但 javac 在 Windows 上默认按系统编码(GBK)读源文件。一旦 Java 源码含中文(比如注释、字符串),就会报 非法字符 或 unclosed string literal 错误。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 菜单 →
插件 → NppExec → Execute... - 输入以下脚本并保存为
JavaCompileRun:
NPP_SAVE
cd "$(CURRENT_DIRECTORY)"
javac -encoding UTF-8 "$(FILE_NAME)"
if $(EXITCODE) == 0 then
java "$(NAME_PART)"
endif
- 勾选
Follow current document,否则$(FILE_NAME)可能取错路径 - 别漏掉
NPP_SAVE—— 否则修改后没保存就执行,会编译旧内容
插件手动安装后仍不生效?检查 plugins 目录层级和权限
Notepad++ 对 plugins 目录结构很敏感:插件 DLL 必须直接放在 plugins 根目录,不能嵌套在子文件夹里;且若 Notepad++ 被以管理员身份运行过,普通用户启动时可能因权限问题跳过加载。
- 典型正确路径:
C:\Program Files\Notepad++\plugins\NppExec.dll - 错误路径示例:
...\plugins\NppExec\NppExec.dll(多了一层文件夹) - 如果安装目录在
Program Files,右键 Notepad++ 快捷方式 → 属性 → 兼容性 → 取消勾选以管理员身份运行此程序 - 启动后打开
插件 → Plugin Manager → Show Plugin Manager,确认NppExec已勾选且状态为Loaded
运行时报错 “Error: Could not find or load main class”
这不是插件问题,而是工作目录或类名不匹配。常见于未切换到源文件所在目录,或类名与文件名大小写不符(尤其在区分大小写的文件系统模拟下)。
- 确保脚本里用了
cd "$(CURRENT_DIRECTORY)",而不是cd "$(FULL_CURRENT_PATH)"(后者是带文件名的完整路径,cd会失败) - Java 文件名必须严格等于
public class名,包括大小写,例如Test.java里不能写public class test - 如果类在 package 中(如
package com.example;),需按包结构建子目录,并在该目录外执行java com.example.Test—— 此时建议改用命令行,NppExec 不适合处理复杂包路径
真正卡住的地方往往不是“怎么装”,而是 NppExec 加载后没注意菜单是否出现、脚本里漏了 NPP_SAVE、或者 javac 没指定编码——这三处一错,Java 就跑不起来,而且错误信息还容易误导你去查 JDK 配置。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










