本站惯例:本文假定你知道Jetbrains家的产品。不知道可以问问搜索引擎。
没错,jetbrains-agent
这个项目停止了。市面上漫天飞的各种最新都是其他大神的魔改版本。[/斜眼]
我不是要专门写个博文来说明jetbrains-agent
项目已经停止,然后缅怀感叹一番。这篇文章是想和大家聊聊另一种思路。
本项目已过时,自2021.2.3
开始不再推荐使用。请支持正版!
0x0. 项目背景
Jetbrains家的产品有一个很良心的地方,他会允许你试用30
天(这个数字写死在代码里了)以评估是否你真的需要为它而付费。
但很多时候会出现一种情况:IDE并不能按照我们实际的试用时间来计算。
我举个例子:如果我们开始了试用,然后媳妇生孩子要你回去陪产!陪产时我们并无空闲对IDE试用评估,它依旧算试用时间。(只是举个例子,或许你并没有女朋友)
发现了吗?你未能真的有30
天来对它进行全面的试用评估,你甚至无法作出是否付费的决定。此时你会想要延长试用时间,然而Jetbrains并未提供相关功能,该怎么办?
事实上有一款插件可以实现这个功能,你或许可以用它来重置一下试用时间。但切记不要无休止的一直试用,这并不是这个插件的本意!
0x1. 如何安装
1). 插件市场安装:
- 在
Settings/Preferences...
->Plugins
内手动添加第三方插件仓库地址:https://plugins.zhile.io
- 搜索:
IDE Eval Reset
插件进行安装。如果搜索不到请注意是否做好了上一步?网络是否通畅? - 插件会提示安装成功。
2). 下载安装:
- 点击这个链接(v2.3.5)下载插件的
zip
包(macOS可能会自动解压,然后把zip
包丢进回收站) - 通常可以直接把
zip
包拖进IDE的窗口来进行插件的安装。如果无法拖动安装,你可以在Settings/Preferences...
->Plugins
里手动安装插件(Install Plugin From Disk...
) - 插件会提示安装成功。
0x2. 如何使用
一般来说,在IDE窗口切出去或切回来时(窗口失去/得到焦点)会触发事件,检测是否长时间(25
天)没有重置,给通知让你选择。(初次安装因为无法获取上次重置时间,会直接给予提示)也可以手动唤出插件的主界面:如果IDE没有打开项目,在Welcome
界面点击菜单:Get Help
->Eval Reset
如果IDE打开了项目,点击菜单:Help
->Eval Reset
唤出的插件主界面中包含了一些显示信息,2
个按钮,1
个勾选项:按钮:Reload
用来刷新界面上的显示信息。按钮:Reset
点击会询问是否重置试用信息并重启IDE。选择Yes
则执行重置操作并重启IDE生效,选择No
则什么也不做。(此为手动重置方式)勾选项:Auto reset before per restart
如果勾选了,则自勾选后每次重启/退出IDE时会自动重置试用信息,你无需做额外的事情。(此为自动重置方式)
如果你的IDE已经过了试用打不开,可以运行这个临时重置脚本(注意选择对应系统版本),它可以让你暂时
进入IDE进行上述操作。(登录试用版本不适用,见下文)
0x3. 如何更新
1). 插件更新机制(推荐):
IDE会自行检测其自身和所安装插件的更新并给予提示。如果本插件有更新,你会收到提示看到更新日志,自行选择是否更新。点击IDE的Check for Updates...
菜单手动检测IDE和所安装插件的更新。如果本插件有更新,你会收到提示看到更新日志,自行选择是否更新。插件更新可能会需要重启IDE。
2). 手动更新:
从本页面下载最新的插件zip
包安装更新。参考本文:下载安装
小节。插件更新需要重启IDE。
0x4. 一些说明
本插件默认不会显示其主界面,如果你需要,参考本文:如何使用
小节。市场付费插件的试用信息也会一并重置。MyBatisCodeHelperPro
插件有两个版本如下,功能完全相同,安装时须看清楚!对于某些付费插件(如:Iedis 2
,MinBatis
)来说,你可能需要去取掉javaagent
配置(如果有)后重启IDE:如果IDE没有打开项目,在Welcome
界面点击菜单:Configure
->Edit Custom VM Options...
-> 移除-javaagent:
开头的行。如果IDE打开了项目,点击菜单:Help
->Edit Custom VM Options...
-> 移除-javaagent:
开头的行。
重置需要重启IDE生效!重置后并不弹出Licenses
对话框让你选择输入License或试用,这和之前的重置脚本/插件不同(省去这烦人的一步)。如果长达25
天不曾有任何重置动作,IDE会有通知询问你是否进行重置。如果勾选:Auto reset before per restart
,重置是静默无感知的。简单来说:勾选了Auto reset before per restart
则无需再管,一劳永逸。
0x5. 新试用机制
- 最新的IDE试用需要登录,我们可以任选以下方式中的一种来继续使用重置插件:
- 使用网络上热心大佬收集总结的
key
,进入IDE后使用重置插件。 - 登录账号试用IDE,安装设置好本插件,退出登录账号重启IDE即可。
- 先安装旧版本IDE,安装设置好本插件,升级IDE到最新版本即可。
- 使用网络上热心大佬收集总结的
- 不管哪种方法原理都是为了让你进入IDE,以便重置插件接管试用。
- 2021.3已经彻底不支持离线试用,本重置插件已失效。可以考虑暂缓升级至2021.3!
0x6. 开源信息
- 插件是学习研究项目,源代码是开放的。源码仓库地址:Gitee。
- 如果你有更好的想法,欢迎给我提
Pull Request
来共同研究完善。 - 插件源码使用:
GPL-2.0
开源协议发布。 - 插件使用
PHP
编写,毕竟PHP
是世界上最好的编程语言!
0x7. 支持的产品
- IntelliJ IDEA
- AppCode
- CLion
- DataGrip
- GoLand
- PhpStorm
- PyCharm
- Rider
- RubyMine
- WebStorm
下面是国际惯例:
本项目只做个人学习研究之用,不得用于商业用途!
若资金允许,请点击链接购买正版,谢谢合作!
学生凭学生证可免费申请正版授权!
创业公司可5折购买正版授权!
已经拥抱正版,考古留念
好家伙,难怪今天闲着升到2022.3发现插件报了一堆错,原来如此
一群人都不仔细看博客,却知道用评论?无需登录帐号就能直接试用 30 天的最后版本:
CLion v2021.2.2: https://download.jetbrains.com/cpp/CLion-2021.2.2.tar.gz
DataGrip v2021.2.2: https://download.jetbrains.com/datagrip/datagrip-2021.2.2.tar.gz
GoLand v2021.2.3: https://download.jetbrains.com/go/goland-2021.2.3.tar.gz
IntelliJ v2021.2.2: https://download.jetbrains.com/idea/ideaIU-2021.2.2.tar.gz
PhpStorm v2021.2.2: https://download.jetbrains.com/webide/PhpStorm-2021.2.2.tar.gz
PyCharm v2021.2.2: https://download.jetbrains.com/python/pycharm-professional-2021.2.2.tar.gz
Rider v2021.2.2: https://download.jetbrains.com/rider/JetBrains.Rider-2021.2.2.tar.gz
RubyMine v2021.2.2: https://download.jetbrains.com/ruby/RubyMine-2021.2.2.tar.gz
WebStorm v2021.2.2: https://download.jetbrains.com/webstorm/WebStorm-2021.2.2.tar.gz
上柱香
谢谢提示
我现在主要是用来学习,学会了我肯定会使用正版,必经做一个项目最不希望看到出问题.一个月事件对我来说太短.自从我用了这个文件,不用他.我的idea都打不开,用了,在测试中一值有问题,又不知哪里有 问题.
其实大家平时都没时间评估,都想延长一下下试用时间方便我们以后付费试用,楼主大概就是这个初衷吧,感谢~
你并没有女朋友[/狗头]
PyCharm 2022.2.3 (Professional Edition)
Build #PY-222.4345.23, built on October 10, 2022
Licensed to Heng Da
订阅有效期至 2022年11月24日。
Evaluation purpose only.
Runtime version: 17.0.4.1+7-b469.62 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 10.15.7
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 8
Metal Rendering is ON
Non-Bundled Plugins:
io.zhile.research.ide-eval-resetter (2.3.5)
com.intellij.zh (222.202)
重置时报错java.lang.NoClassDefFoundError: com/intellij/ide/util/PropertiesComponentImpl
at io.zhile.research.intellij.ier.common.Resetter.getEvalRecords(Resetter.java:72)
at io.zhile.research.intellij.ier.ui.form.MainForm.reloadRecordItems(MainForm.java:134)
at io.zhile.research.intellij.ier.ui.form.MainForm.getContent(MainForm.java:99)
at io.zhile.research.intellij.ier.tw.MainToolWindowFactory.createToolWindowContent(MainToolWindowFactory.java:23)
at com.intellij.openapi.wm.impl.ToolWindowImpl.createContentIfNeededintellij_platform_ide_impl(ToolWindowImpl.kt:533)
at com.intellij.openapi.wm.impl.ToolWindowImpl.scheduleContentInitializationIfNeededintellij_platform_ide_impl(ToolWindowImpl.kt:512)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.doShowWindow(ToolWindowManagerImpl.kt:923)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.showToolWindowImpl(ToolWindowManagerImpl.kt:863)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.showToolWindowImpldefault(ToolWindowManagerImpl.kt:852)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.registerToolWindowintellij_platform_ide_impl(ToolWindowManagerImpl.kt:1026)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.initToolWindowintellij_platform_ide_impl(ToolWindowManagerImpl.kt:481)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.initToolWindow(ToolWindowManagerImpl.kt:462)
at io.zhile.research.intellij.ier.action.ResetAction.actionPerformed(ResetAction.java:56)
at com.intellij.openapi.actionSystem.ex.ActionUtil.doPerformActionOrShowPopup(ActionUtil.java:315)
at com.intellij.openapi.actionSystem.ex.ActionUtil.lambdaperformActionDumbAwareWithCallbacks4(ActionUtil.java:294)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:337)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:294)
at com.intellij.openapi.fileEditor.impl.IdeUiServiceImpl.performActionDumbAwareWithCallbacks(IdeUiServiceImpl.java:109)
at com.intellij.notification.Notification.fire(Notification.java:288)
at com.intellij.notification.impl.NotificationsManagerImpl.lambdacreateAction11(NotificationsManagerImpl.java:841)
at com.intellij.ui.components.labels.LinkLabel.doClick(LinkLabel.java:174)
at com.intellij.ui.components.labels.LinkLabel.doClick(LinkLabel.java:388)
at com.intellij.ui.components.labels.LinkLabelMyMouseHandler.mouseReleased(LinkLabel.java:361)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6648)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3392)
at java.desktop/java.awt.Component.processEvent(Component.java:6413)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
at java.desktop/java.awt.EventQueue4.run(EventQueue.java:730)
at java.desktop/java.awt.EventQueue4.run(EventQueue.java:724)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomainJavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomainJavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue5.run(EventQueue.java:754)
at java.desktop/java.awt.EventQueue5.run(EventQueue.java:752)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomainJavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:751)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:918)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:840)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:763)
at com.intellij.ide.IdeEventQueue.lambdadispatchEvent6(IdeEventQueue.java:450)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:791)
at com.intellij.ide.IdeEventQueue.lambdadispatchEvent7(IdeEventQueue.java:449)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:624)
at com.intellij.ide.IdeEventQueue.lambdadispatchEvent$8(IdeEventQueue.java:447)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:493)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Caused by: java.lang.ClassNotFoundException: com.intellij.ide.util.PropertiesComponentImpl PluginClassLoader(plugin=PluginDescriptor(name=IDE Eval Reset, id=io.zhile.research.ide-eval-resetter, descriptorPath=plugin.xml, path=~/Library/Application Support/JetBrains/PyCharm2022.2/plugins/ide-eval-resetter, version=2.3.5, package=null, isBundled=false), packagePrefix=null, instanceId=16, state=active)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:214)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
… 64 more
我讲真的,你们烦不烦啊?文章写的内容不看,就蒙着头在那自说自话???
已仔细阅读,感谢回复
难绷,评论区好多不会中文的