9

有很多 Eclipse RCP 教程都是从明显的第一步开始的:“创建一个新的插件项目......”

似乎大约。其中 70% 指定检查“生成一个激活器,一个控制插件生命周期的 Java 类”。其他人特别说不要检查那个切换。

替代文字 http://img179.imageshack.us/img179/6710/newpluginoptions.png

我不清楚生成激活器类对你有什么作用,什么时候需要,什么时候不需要。

作为一个突出的选项,你每次创建一个新的插件项目(它似乎默认设置)时,这个选项在我发现的任何地方都没有得到很好的解释。

在创建 Eclipse 插件项目时选择此选项有什么建议/经验法则?

4

4 回答 4

5

找出答案的一种方法是查看生成的类。原来它是AbstractUIPlugin的子类。查看 JavaDoc,它提供了偏好管理、图像注册等服务。如果你需要这些,你可能想要使用它。它是 Plugin 的子类,这很有意义。

此外,它实现了BundleActivator,它有一些有用的 JavaDoc。这为您提供了 start() 和 stop() 的存根,允许您在此处挂钩自己的代码。它还生成一个静态便捷方法 getDefault(),它为您提供了 Activator。这就是它的全部。

于 2014-04-11T14:21:20.393 回答
4

从 Eclipse 本身(对话框的上下文相关帮助)中可以看出这一点,这有点用处。

激活器是控制插件生命周期的 Java 类。仅当您需要在插件启动或关闭时进行工作时才需要它。”

打开此选项时,将为您的新项目自动生成一个 Activator.java 类。

因此,听起来如果(有点新手)您不知道为什么或在插件启动/关闭时需要做哪些额外的工作,您可以放心地将其关闭。您的项目源文件夹中只显示了一个少一个 .java 文件。

于 2010-05-18T14:18:16.897 回答
2

如果你真的想知道,看看OSGi 规范;第 4 版是当前版本。从 Eclipse 3 开始,每个插件都是一个 OSGi 包。当包启动和停止时会通知包激活器,这通常发生在 Eclipse 启动和关闭时。您还可以安装在其他包(即插件)启动或注册 OSGi 服务时收到通知的侦听器。

例如,我在 bundle 完成启动后使用监听器启动某些操作;否则我可能会遇到类加载器问题。您可能还需要激活器来存储 BundleContext,它允许您加载类并允许您访问包的名称和版本。

于 2010-05-18T14:29:51.937 回答
-1

这是我找到的最接近解释的东西:

http://dev.eclipse.org/newslists/news.eclipse.platform.rcp/msg23445.html

于 2010-05-18T13:09:12.163 回答