默认情况下,Eclipse插件是懒加载(Lazy Start)的,即只有当插件的功能被真正调用的时候(比如打开插件中的视图或点击插件的全局菜单等),插件才会被启动(执行生命周期的开始start 方法)
org.eclipse.ui.startup 扩展点可能是版本2.0一直有争议的API之一。
它标记当Eclipse加载时要启动的插件。亦即当某插件中有类实现org.eclipse.ui.startup扩展点,
则在eclipse启动(工作台窗口打开时)时,激活启动插件,而不受延迟加载策略限制。
执行顺序:
插件类的start方法执行---》实现IStartup接口的类的earlyStartup方法执行
扩展点属性说明:
point - 目标扩展点的标准标识(org.eclipse.ui.StartUp)
id - 扩展实例的可选标识。
name - 扩展实例的可选名称。
class - 实现 org.eclipse.ui.IStartup的类的标准名称。如果未指定此项,则将使用插件类。
不要指定插件类作为显式值,否则它将被实例化两次(一次由常规插件激活操作实例化,一次由此机制实例化)。这是一个注意事项。
plugin.xml中示例
<extension
id="hellorcp.start.StartUp"
name="hellorcp.start.StartUp"
point="org.eclipse.ui.startup">
<startup class="hellorcp.start.StartUp"></startup>
</extension>
使用
-
在插件项目配置文件,META-INF/MANIFEST.MF文件中,Extension页面,Add一个org.eclipse.ui.startup扩展点
-
配置此扩展点
-
指向的类需要实现IStartup接口
package org.skyeye.modeling.api; import org.eclipse.ui.IStartup; public class SkyeyeStartUp implements IStartup{ @Override public void earlyStartup() { } }