Eclipse rcp 实现AbstractPreferenceInitializer赢得';在我的Eclipse RCP中没有被调用

Eclipse rcp 实现AbstractPreferenceInitializer赢得';在我的Eclipse RCP中没有被调用,eclipse-rcp,preferences,Eclipse Rcp,Preferences,我想使用Eclipse机制在我的RCP应用程序中设置默认首选项。因此,我扩展了类AbstractPreferenceInitializer,以设置我的默认首选项: 公共类PreferenceInitializer扩展了AbstractPreferenceInitializer{ @凌驾 public void initializedDefaultPreferences(){ IPreferenceStore preferenceStore=PlatformUI.getPreferenceStor

我想使用Eclipse机制在我的RCP应用程序中设置默认首选项。因此,我扩展了类
AbstractPreferenceInitializer
,以设置我的默认首选项:

公共类PreferenceInitializer扩展了AbstractPreferenceInitializer{
@凌驾
public void initializedDefaultPreferences(){
IPreferenceStore preferenceStore=PlatformUI.getPreferenceStore();
setDefault(“xyz”,xyz);
设置默认值(“abc”,false);
}
}
然后我定义了扩展点:


但不幸的是,初始化器在启动期间不会被调用(而Eclipse的
WorkbenchReferenceInitializer
将被调用)


有人能给我一个提示,怎么做才能运行这个程序吗?

在需要这些默认值之前(而不是在应用程序启动时,我猜这是您的期望),不会调用您的首选项初始值设定项代码

如果您有一个包含一些使用您的首选项名称的字段编辑器的首选项页面,当您转到“首选项”对话框并选择该首选项页面时,将调用您的首选项初始值设定项

大致如下:

公共类MyPreferencePage扩展FieldEditorReferencePage实现IWorkbenchReferencePage{
public void createFieldEditors(){
复合父项=getFieldEditorParent();
addField(新的StringFieldEditor(Constants.PREFERENCES.FILE_COMPARE_TOOL_LOCATION,“FILE COMPARE TOOL LOCATION”,parent));
addField(新的StringFieldEditor(“xyz”,“xyz值”,父项));
addField(新的BooleanFieldEditor(“abc”,“启用abc小部件”,父项));
}
}
当然,还有一个页面的扩展点: