Java 如何在Eclipse加载时激活插件?

Java 如何在Eclipse加载时激活插件?,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,有没有办法在Eclipse启动后激活我的插件?我已经扩展了一台JavaCompletionProposalComputer来计算一个列表,当按下CTRL+SPACE时,将显示一个完整的列表。为了我的工作,我需要倾听工作空间中的任何变化;因此,我实现了一个IResourceChangeListener类。但是,如果用户决定不使用内容辅助,则侦听器永远不会启动 为了解决这个问题,我正要删除Bundle ActivationPolicy中的lazy参数,但我在某个地方读到这是个坏主意。另一种方法是使用

有没有办法在Eclipse启动后激活我的插件?我已经扩展了一台JavaCompletionProposalComputer来计算一个列表,当按下CTRL+SPACE时,将显示一个完整的列表。为了我的工作,我需要倾听工作空间中的任何变化;因此,我实现了一个IResourceChangeListener类。但是,如果用户决定不使用内容辅助,则侦听器永远不会启动

为了解决这个问题,我正要删除Bundle ActivationPolicy中的lazy参数,但我在某个地方读到这是个坏主意。另一种方法是使用包org.eclipse.ui.startup中的IStartup;但是,用户可能会在系统首选项中禁用earlyStartup功能

还有其他办法解决这个问题吗?提前感谢你

为了解决这个问题,我正要删除Bundle ActivationPolicy中的lazy参数,但我在某个地方读到这是个坏主意

删除
Bundle ActivationPolicy:lazy
意味着您的插件根本不会被自动激活

另一种方法是使用包org.eclipse.ui.startup中的IStartup;但是,用户可能会在系统首选项中禁用earlyStartup功能

这是唯一正确的方法。如果用户禁用早期启动,这是他的特权。因此,在这种情况下,您仍然应该提供一些方法来激活您的插件

为了解决这个问题,我正要删除Bundle ActivationPolicy中的lazy参数,但我在某个地方读到这是个坏主意

删除
Bundle ActivationPolicy:lazy
意味着您的插件根本不会被自动激活

另一种方法是使用包org.eclipse.ui.startup中的IStartup;但是,用户可能会在系统首选项中禁用earlyStartup功能


这是唯一正确的方法。如果用户禁用早期启动,这是他的特权。因此,在这种情况下,您仍然应该提供一些方法来激活插件。

这就是workspace save参与者的用途。请参阅上的“处理激活之间的资源增量”部分。

这就是workspace save参与者的用途。请参阅。

上的“处理激活之间的资源增量”部分。我想指出,通常认为在Eclipse启动时强制插件始终启动是一种不好的做法。这将使您的插件处于活动状态,即使您想将Eclipse用于完全不相关的东西

我记得Aptanas认为他们的Ruby插件非常重要,他们必须在Eclipse启动时将自己集成到各个地方,并自动连接到一堆网页。太可怕了,我不得不删除Eclipse安装来摆脱它

无论如何,尽管如此


请注意,这似乎与您的问题相同

我只想指出,在Eclipse启动时强制插件始终启动通常被认为是不好的做法。这将使您的插件处于活动状态,即使您想将Eclipse用于完全不相关的东西

我记得Aptanas认为他们的Ruby插件非常重要,他们必须在Eclipse启动时将自己集成到各个地方,并自动连接到一堆网页。太可怕了,我不得不删除Eclipse安装来摆脱它

无论如何,尽管如此


请检查,这似乎与您的问题相同

如果用户不使用内容辅助,注册侦听器的目的是什么?如果您的插件还提供了一些其他功能,那么请尝试找到触发代码的适当扩展点。@vanaprogeja是的,这似乎毫无意义,但该插件确实提供了其他非基于GUI的功能。所以我想不出有什么扩展可以从一开始就触发我的插件。如果用户不使用内容辅助,注册监听器的目的是什么?如果您的插件还提供了一些其他功能,那么请尝试找到触发代码的适当扩展点。@vanaprogeja是的,这似乎毫无意义,但该插件确实提供了其他非基于GUI的功能。因此,我想不出有什么扩展可以从一开始就触发我的插件。我会把它留给用户,但在我的工作环境中,这不是一个好主意。此外,如果我使用earlyStartup注册监听器,我不知道如何取消注册监听器。如果你找到一种方法,让你的插件在启动时激活,而不让用户禁用它,它很可能会作为一个bug报告给Eclipse。我会把它留给用户,但在我的工作环境中,这不是一个好主意。此外,如果我使用earlyStartup注册监听器,我不知道如何取消注册监听器。如果你找到一种方法让你的插件在启动时激活,而不让用户禁用它,那么它很可能会作为一个bug报告给Eclipse。