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