【问题标题】:Eclipse, plugin preference loading issueEclipse,插件首选项加载问题
【发布时间】:2011-12-19 04:33:12
【问题描述】:

我无法将首选项加载到 Eclipse。如果不先转到首选项页面,我将无法加载首选项的值。 我启动 Eclipse,使用我的插件,我看到该功能未启用。 我启动 Eclipse,进入偏好页面并使用我的插件,一切正常。

我正在尝试使用以下代码从首选项存储中访问启用的值

final IPreferenceStore preferences = new ScopedPreferenceStore(new InstanceScope(), <my plugin id>);
this.enabled = preferences.getBoolean(<templateName>_ENABLE_TEMPLATE"));

此调用转到方法 公共布尔getBoolean(字符串名称){ 字符串值 = internalGet(name); 返回值 == 空? BOOLEAN_DEFAULT_DEFAULT : Boolean.valueOf(value) .booleanValue(); } internalGet(name) -- 返回 null..结果 this.enabled 设置为 false

在我的代码中,我检查了这个变量,如果它是假的,我会显示一条错误消息并且不再继续。

我想知道我们如何确保在调用首选项后立即启用/加载它们。

提前致谢!!

【问题讨论】:

  • 在您可以从偏好存储中读取值之前,必须有人将值写入其中。我假设首选项页面设置了该值,但是代码中是否还有其他位置存储“_ENABLE_TEMPLATE”的值?您是否会在每次启动和删除首选项之前清理工作区?
  • 您好,我正在尝试在首选项页面初始化时(初始化后立即)访问首选项值。这样做对吗?

标签: java eclipse-plugin


【解决方案1】:

Preferences 服务在org.eclipse.core.runtime 插件被激活时被初始化,这意味着你的代码几乎不可能在未初始化的状态下访问它。没有得到一个preference的值的原因是该值没有被设置。

还可以使用 preferences.ini 文件(应放在插件/捆绑包根目录中)为您的所有首选项指定默认值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多