【发布时间】:2014-08-28 15:35:39
【问题描述】:
我能否为 NetBeans 创建一个在用户打开 NetBeans IDE 后立即在后台运行的模块?例如,我正在构建一个插件,它在 NetBeans 中捕获活动 JTextComponent(活动代码编辑器)的源代码,但我希望这个插件始终在后台运行,而不必由用户单击按钮或按下来激活一些组合键。
这可能吗?如果可以,最好的方法是什么?
【问题讨论】:
我能否为 NetBeans 创建一个在用户打开 NetBeans IDE 后立即在后台运行的模块?例如,我正在构建一个插件,它在 NetBeans 中捕获活动 JTextComponent(活动代码编辑器)的源代码,但我希望这个插件始终在后台运行,而不必由用户单击按钮或按下来激活一些组合键。
这可能吗?如果可以,最好的方法是什么?
【问题讨论】:
是的,只需在模块的根包中创建一个“Install.java”并使用ModuleInstall 类对其进行子类化,然后启动一个在restored() 方法中连续运行的进程。 restored() 方法在模块安装和每次 netbeans 启动时被调用。因此,一旦模块在 Netbeans 中加载,您的进程就会开始。
还可以从DevFaqModulesGeneral 签出此部分。
程序化注册——ModuleInstall 类 模块系统 允许你提供一个 ModuleInstall 类,它运行一些代码 在启动期间或加载模块时,可以运行清理代码 当它被卸载或禁用时。这是最不可取的方式 做事情,因为在启动时运行代码意味着放慢速度 启动。在使用这样的类之前,请确保没有声明 做你想做的事的方法;看: DevFaqModulesDeclarativeVsProgrammatic
要在启动/安装/卸载/等时运行一些代码,请添加 在你的模块清单文件中添加如下一行:
OpenIDE-Module-Install: org/netbeans/modules/paintcatcher/PaintCatcherModule.class此行应该是顶部行组的一部分 manifest,前面没有空行。它是一个类的指针 模块内的文件。类文件必须扩展类 org.openide.modules.ModuleInstall。里面有个法师 开发支持为您创建和注册此类。
【讨论】: