我正在製作一個插件來提供Eclipse 4.x中的首選項頁面。Eclipse插件激活器的啓動方法未被調用
我遵循本教程Vogella-Preferences。
與頁面的問題是,我輸入值一次,然後退出,然後重新打開首選項後,值不會保留。可能的原因可能是PreferenceStore未指定。
以下爲選項頁面代碼:
import com.varun.preference.main.Activator;
public class EASEPreferences extends FieldEditorPreferencePage
implements IWorkbenchPreferencePage {
public EASEPreferences(){
super(GRID);
}
@Override
public void init(IWorkbench workbench) {
setPreferenceStore(getPreferenceStore());
// setPreferenceStore(Activator.getDefault().getPreferenceStore());
setDescription("Final Implementation");
}
@Override
protected void createFieldEditors() {
addField(new DirectoryFieldEditor("PATH", "Get &Default Keystore:",
getFieldEditorParent()));
addField(new BooleanFieldEditor("BOOLEAN_VALUE",
"&Automatically run scripts that are not signed(Not Recommended)",
getFieldEditorParent()));
}
}
眼下,代碼工作和偏好頁面是可見的,但它是沒有得到保存。
如果我去掉init方法和註釋的第二行第一,然後錯誤
顯示java.lang.NullPointerException在 com.varun.preference.page_final.EASEPreferences.init(EASEPreferences.java:24說)
Activator.java是如下
public class Activator extends AbstractUIPlugin {
public static Activator plugin;
public static BundleContext context;
public Activator() {
}
@Override
public void start(BundleContext context){
Activator.context = context;
System.out.println("---InStart---");
plugin = this;
}
@Override
public void stop(BundleContext context){
Activator.context = null;
}
public static Activator getDefault(){
return plugin;
}
}
在這裏,有什麼我假設是開始運行插件時未調用方法,因爲println語句未打印。
我是否缺少Activator的東西?
我的MANIFEST.MF文件是:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Final
Bundle-SymbolicName: com.varun.preference.page.final;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: VARUN
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime
Bundle-Activator: com.varun.preference.main.Activator
我沒有使用任何產品或功能。這是一個簡單的插件。
Eclipse版本:4.5.2
感謝。