恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Navicat 试用期限,一条命令重置
首页
资讯中心
/
Navicat 试用期限,一条命令重置
Navicat 试用期限,一条命令重置
发布时间:2026/8/21 23:51:26
Navicat 试用期限一条命令重置【免费下载链接】navicat-keynavicat-key项目地址: https://gitcode.com/gh_mirrors/na/navicat-keyNavicat 又弹出试用期限已用尽你盯着屏幕明天的查询还等着跑。老办法是打开 regedit手动删除 HKEY_CURRENT_USER\Software\PremiumSoft\Data再翻遍 CLSID 下的每一个子项敲键盘敲得手软还容易删错。navicat-key 就是为终结这套手动操作而写的关掉 Navicat运行一条命令它自动清理注册表里记录试用期的两项数据让 15 天试用期重新计数。它一共就 4 个文件源码不到 50 行读完你就明白它干了啥。你付出的成本一条命令。你得到的效果Navicat 试用期立刻回到 15 天。动手前30 秒自检开始之前先确认三件事检查项要求操作系统Windows注册表只在 Windows 上存在Java 版本JDK 8 及以上java -version 能看到输出即可当前动作先关掉所有 Navicat 窗口确认没有残留进程这三项都满足才适合继续读。如果 Navicat 还开着先把它关了。因为它运行时会把数据写回注册表你不关它删了也白删。后面所有步骤都建立在这个前提上。最短路径从零到跑通在命令提示符里依次执行下面四行命令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第 1 行把项目克隆到本地第 2 行进入项目目录后面所有路径都相对它第 3 行编译主程序-cp 指向 libs 里的 jregistry-1.8.3.jar它是 Java 读写注册表的核心依赖。编译完会在 src/com/returncode/navicat/ 下生成 Registery.class第 4 行运行程序-Djava.library.path 告诉 Java 去 libs 目录找 reg.dll 本地库分号是 Windows 下的路径分隔符Linux/macOS 要换成冒号。也许有人会问为什么不直接 java -jar因为项目里没有现成的 jar得先编译。编译完才跑得起来。跑完之后怎么知道它删对了看控制台。看到下面这种输出就说明清理已经完成delete : HKEY_CURRENT_USER\Software\PremiumSoft\Data delete : HKEY_CURRENT_USER\Software\Classes\CLSID\{05FA135A-5E1E-01B9-5855-34A51FA798F7}\Info第一行是主记录被删掉了后面每一行对应一个被清理的 CLSID 子项。想再确认一次可以打开 regedit查 HKEY_CURRENT_USER\Software\PremiumSoft 下 data 还在不在——不在了就是成功。更直观一点重新打开 Navicat它会重新走一遍首次使用的流程试用期限显示 15 天。一个比喻看懂原理把 Navicat 想成一款手游你每玩一次它都会在你的 Windows 注册表里存一份进度存档标记你已经用过试用期。存档不在安装目录里而在系统级的注册表中当前用户专属的 HKEY_CURRENT_USER 就是它的存放点。navicat-key 做的事就是把这些存档删干净。Navicat 再启动时发现没有存档就会把你当成新用户重新给 15 天。为什么非得是注册表因为 Navicat 的配置和状态都写在系统级的地方不在安装目录所以你删文件没用得删注册表。注册表这块也是 Windows 独有Mac 和 Linux 上没有所以这工具也只能在 Windows 上跑。关键数据就存在两个地方位置作用HKEY_CURRENT_USER\Software\PremiumSoft\Data主存档记录试用状态HKEY_CURRENT_USER\Software\Classes\CLSID 下各子项的 Info散落的辅助存档这两处删干净Navicat 就以为你是新用户。核心代码其实就几行在 src/com/returncode/navicat/Registery.java 的 main 方法里Registery reg new Registery(); 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); }getRegistery 拿到的是键对象deleteSubTree 传子键名不是路径。它会先确认子键存在存在就打印路径再删除——控制台那串 delete 日志就是这么来的。跑通之后再玩 2 个花样1. 打包成独立 jar以后一条命令启动编译好的 class 可以直接打成可执行 jar。src/META-INF/MANIFEST.MF 里已经写好了入口类 com.returncode.navicat.Registery所以 -jar 直接能跑。打包的好处是不用每次敲一长串参数jar cfm navicat-key.jar src/META-INF/MANIFEST.MF -C src com/returncode/navicat/Registery.class java -Djava.library.pathlibs -jar navicat-key.jarjar 命令里 cfm 是 create with manifest-C src 表示 class 文件相对 src 目录取。2. 写个批处理关进程加清理串成一步把下面内容存成 reset.bat放在项目根目录以后双击它就能完成全套动作。批处理的好处是双击就能跑不用记命令echo off taskkill /F /IM navicat.exe 2nul cd /d %~dp0 java -Djava.library.pathlibs -jar navicat-key.jar pausetaskkill 负责强制关掉 Navicat2nul 让没找到进程时也不报错脚本可以反复用。卡住了先查这几处先说一句报错别慌基本就这几种。症状可能原因一句解法java.lang.SecurityException: Access to the registry is not allowed当前用户没有注册表访问权限用管理员身份运行命令提示符再执行java.lang.UnsatisfiedLinkError: no reg in java.library.pathlibs 下的 reg.dll 没找到确认 reg.dll 和 reg_x64.dll 在 libs 目录-Djava.library.path 指向它Unsupported major.minor version 52.0Java 版本低于 8升级 JDK 到 8 以上检查 JAVA_HOME没有 delete 日志试用期限没变Navicat 进程还活着把数据又写回去了任务管理器结束所有 navicat 进程再跑一次还有种情况日志刷了一半突然卡住。多半是 Navicat 又启动了把数据写回去了。关干净再跑。动手之前建议先留个后路把要删的注册表导出来存好万一删多了能一键还原。reg export HKEY_CURRENT_USER\Software\PremiumSoft premiumsoft_backup.reg 这一条就够CLSID 那条可以按需加。下一步交给你要不要在 deleteSubTree 里加一行文件写入把每次清理的路径和时间记下来或者帮作者打包成 exe——源码注释里还挂着这个请求呢。试着跑一次看看那串 delete 日志再翻开不到 50 行的 main 方法。等你熟悉了它说不定下一个版本就出自你手。【免费下载链接】navicat-keynavicat-key项目地址: https://gitcode.com/gh_mirrors/na/navicat-key创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考