何时在创建新的Eclipse插件项目时选择“生成激活器…”
有很多Eclipse RCP教程以明显的第一步开始:“创建一个新的插件项目……”
似乎约。 其中70%指定检查“生成激活器,控制插件生命周期的Java类” 。 其他人特别说不要检查切换。
替代文字http://img179.imageshack.us/img179/6710/newpluginoptions.png
我不清楚,当你需要一个激活类时,为你做什么,当你不需要时,它会为你做什么。
为了成为一个突出的选项,每次你创建一个新的插件项目(它似乎默认设置)时,这个选项在我找到的任何地方都没有得到很好的解释。
在创建Eclipse插件项目时选择此选项的任何建议/经验法则?
从Eclipse本身(对话框的上下文敏感帮助),它说,这是有用的。
“ 激活器是一个控制插件生命周期的Java类。只有在你需要在启动或关闭插件时才能工作。”
打开此选项时,将为您的新项目自动生成Activator.java类。
所以,听起来好像(有点新手)你不知道为什么或者你在插件启动/关闭时需要做些什么额外的工作,你可以安全地将其关闭。 只需少一个.java文件显示在项目源文件夹中。
找出的一种方法是查看生成的类。 原来它是AbstractUIPlugin的子类。 查看JavaDoc,它提供了首选项管理,图像注册表等服务。 如果您需要这些,您可能想要使用它。 它是Plugin的一个子类,这是有道理的。
此外,它实现了BundleActivator ,它有一些有用的JavaDoc。 这为您提供了start()和stop()的存根,允许您在此处挂钩自己的代码。 它还会生成一个静态便捷方法getDefault(),它为您提供Activator。 这就是它的全部。
如果您真的想知道,请查看OSGi规范 ; 版本4是当前版本。 从Eclipse 3开始,每个插件都是一个OSGi包。 捆绑包启动和停止时会通知捆绑激活器,这通常发生在Eclipse启动和关闭时。 您还可以安装在启动其他捆绑包(即插件)时通知的侦听器或注册OSGi服务。
例如,在bundle完成启动后,我使用一个监听器来启动某些操作; 否则我可能会遇到类加载器问题。 您可能还需要激活器来存储BundleContext,它允许您加载类并允许您访问软件包的名称和版本。