
如何在 4 步内重置 Navicat 的 15 天试用期navicat-key 完整实操指南【免费下载链接】navicat-keynavicat-key项目地址: https://gitcode.com/gh_mirrors/na/navicat-key重置 Navicat 的试用期过去得靠手动删注册表打开 regedit找到 HKEY_CURRENT_USER\Software\PremiumSoft\Data再去 CLSID 里一个个翻还不确定有没有漏删。navicat-key 把这套手工操作封装成了一个 Java 小程序——关闭 Navicat运行一次程序它自动擦掉注册表里的试用痕迹15 天试用期重新开始。读完这篇文章你能在 10 分钟内自己跑完下载、编译、清理、验证的完整流程。4 条命令跑起来navicat-key 在 Windows 上的最小路径前提只有两个一台 Windows 机器和 JDK 8 及以上版本在命令提示符里执行java -version即可验证。打开 cmd按顺序敲入git clone https://gitcode.com/gh_mirrors/na/navicat-key cd navicat-key javac -cp libs/jregistry-1.8.3.jar src/com/returncode/navicat/Registery.java java -Djava.library.pathlibs -cp src;libs/jregistry-1.8.3.jar com.returncode.navicat.Registery逐条说明把项目克隆到本地进入项目根目录编译唯一的 Java 源文件-cp指定的 jregistry 是读写注册表的核心依赖运行主程序-Djava.library.path告诉 Java 去哪里找 reg.dll / reg_x64.dll 这两个本地库。classpath 里的;是 Windows 的路径分隔符Linux/macOS 下是:不过该项目依赖的是 Windows 下的 dll实际只能在 Windows 上运行。运行成功的话控制台会立刻刷出这样的几行delete : HKEY_CURRENT_USER\Software\PremiumSoft\Data delete : HKEY_CURRENT_USER\Software\Classes\CLSID\{05FA135A-5E1E-01B9-5855-34A51FA798F7}\Info每一行都以delete :开头表示对应的键已经被删除如果什么都没有输出别慌对照文末的排障速查表处理。Java 程序凭什么能清理注册表Java 本身没有碰注册表的能力。可以把注册表理解成 Windows 校门口的一块大黑板每个软件都把配置和状态用粉笔写在上面其中 HKEY_CURRENT_USER 这一栏是当前登录用户专属的板面。Navicat 曾在上面写下这台机器用过试用而 navicat-key 就是老师手里的那块板擦只擦 Navicat 写的那几行。板擦的手是 libs 目录里的 jregistry-1.8.3.jar它通过 JNI 这座桥走进 Windows 系统 API配套的 reg.dll 与 reg_x64.dll 两个本地库分别负责 32 位和 64 位系统。整个项目目录也非常小——libs/ 下就是这三个文件src/ 下是主程序和一个提前声明好入口类的 MANIFEST.MF。主程序的核心逻辑只有这几行RegistryKey premiumSoft reg.getRegistery(\\Software\\PremiumSoft); reg.deleteSubTree(premiumSoft, Data); // 擦掉主痕迹 RegistryKey clsId reg.getRegistery(\\Software\\Classes\\CLSID); for (RegistryKey sub : clsId.getSubKeys()) { reg.deleteSubTree(sub, Info); // 逐个擦掉散落痕迹 }deleteSubTree会先确认子键存在存在才打印完整路径再执行删除——你看到的那串日志就是程序替你留下的擦除凭证键不存在则安静跳过不会报错。全流程走查4 步从关闭 Navicat 到试用期回到 15 天关闭 Navicat关掉所有窗口再到任务管理器确认没有残留的 navicat 进程。进程不退出它可能在你删完键的瞬间又把内容写回来。编译上一节的第 3 条命令如果已经执行过src/com/returncode/navicat/下会多出Registery.class编译这一步就完成了没执行过就回去补上。运行并看日志delete日志的第一行应该是 HKEY_CURRENT_USER\Software\PremiumSoft\Data即主痕迹后面的行都是 CLSID 下被擦掉的散落痕迹。只出现第一行、或一行都没有只要没有报错都属于正常分别表示散落痕迹已清过和两处都清过了。重启验证打开 Navicat若出现首次使用的欢迎页、试用期从 15 天重新计算说明重置成功。想再确认一遍清理是否彻底可以打开 regedit 导航到 HKEY_CURRENT_USER\Software\PremiumSoft检查 Data 文件夹是否已不存在。3 个可落地的折腾思路打包 jar、批处理脚本、加日志1. 打包成单个 JAR之后直接 -jar 运行。入口类在 MANIFEST.MF 里已声明好所以只需jar cfm navicat-key.jar src/META-INF/MANIFEST.MF -C src com/returncode/navicat/Registery.class java -Djava.library.pathlibs -jar navicat-key.jar第一行负责打包cfm 表示按指定清单生成索引文件第二行就是今后每次运行的姿势比四行的 classpath 版本短得多。2. 写个批处理把动作串成一步。把下面内容存成 reset.bat 放在项目根目录以后双击就能完成全套动作echo off taskkill /F /IM navicat.exe 2nul cd /d %~dp0 java -Djava.library.pathlibs -jar navicat-key.jar echo 清理完成可以重新打开 Navicat 了 pausetaskkill负责强制结束 Navicat2nul让没找到进程的报错被吞掉脚本可以反复双击不怕报错%~dp0会自动切到脚本所在目录所以这个文件搬到哪都能用。3. 改一改板擦的范围。源码不足 50 行你可以在deleteSubTree里补几行文件写入把每次清理的路径和时间记下来方便日后回溯也可以把写死的路径字符串抽成一个列表将来 Navicat 换了版本改配置就行不用翻代码。排障速查4 种容易翻车的情况症状原因解法抛出 SecurityException: Access to the registry is not allowed当前用户对注册表没有写权限以管理员身份重新打开命令提示符再执行一遍UnsatisfiedLinkError: no reg in java.library.pathjregistry 找不到 reg.dll / reg_x64.dll检查 libs/ 目录下两个 dll 是否齐全-Djava.library.path参数是否传对Unsupported major.minor version 52.0本地 JDK 低于 8读不了 JDK 8 编译的 class执行java -version核对版本升级到 JDK 8 及以上并确认 JAVA_HOME 指向正确程序一闪而过没有任何 delete 日志Navicat 进程仍在跑或注册表键本来就已清理过先在任务管理器结束全部 navicat 进程若之前已清理过一次没有日志本身也是正常的如果担心误删动手前可以先导出一份保险reg export HKEY_CURRENT_USER\Software\PremiumSoft backup_premiumsoft.reg reg export HKEY_CURRENT_USER\Software\Classes\CLSID backup_clsid.regreg export会把指定分支写成 .reg 文件万一出问题双击这个文件就能还原。跑完之后现在就可以改的一行源码打开 Registery.java把deleteSubTree里的delete : 改成cleaned : 重新编译再跑一次确认屏幕上的日志前缀跟着变了——这就是你在这个项目上的第一处改动。等你对它彻底熟悉之后还可以顺手把它注册成 Windows 计划任务每 15 天默默替你跑一次省得自己记日子。【免费下载链接】navicat-keynavicat-key项目地址: https://gitcode.com/gh_mirrors/na/navicat-key创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考