如何在Eclipse插件中指定和读取属性
我有一个Eclipse产品,它使用我自己的插件。我想根据用户输入读取一些属性。我想在某些用户操作上保留这些属性,并在需要时将这些属性读回。这可以通过使用一些eclipseapi来实现吗 对上述问题的更详细描述: 假设我在一个配置文件如何在Eclipse插件中指定和读取属性,eclipse,properties,eclipse-plugin,eclipse-rcp,Eclipse,Properties,Eclipse Plugin,Eclipse Rcp,我有一个Eclipse产品,它使用我自己的插件。我想根据用户输入读取一些属性。我想在某些用户操作上保留这些属性,并在需要时将这些属性读回。这可以通过使用一些eclipseapi来实现吗 对上述问题的更详细描述: 假设我在一个配置文件myconfig.ini中有一个属性abc=xyz。透视图在引导过程中读取此属性。在使用透视图期间,某些操作将此属性设置为新值xyz=def。现在,我应该能够将新值保存在myconfig.ini中。因此,下次启动时,xyz的值将被读取为def,而不是abc。但是,我也
myconfig.ini
中有一个属性abc=xyz
。透视图在引导过程中读取此属性。在使用透视图期间,某些操作将此属性设置为新值xyz=def
。现在,我应该能够将新值保存在myconfig.ini
中。因此,下次启动时,xyz
的值将被读取为def
,而不是abc
。但是,我也可以通过编辑myconfig.ini
文件来选择手动将其设置为abc
myconfig.ini
中管理读取、写入和更新属性的最佳API是什么IMarker marker = file.createMarker(IMarker.MARKER);
marker.setAttribute(IMarker.MESSAGE, "blabla");
marker.setAttribute("attr", 5);
您可以使用IResource
上的findMarkers
方法搜索标记。
请参阅您应该考虑使用Apache配置API 它可以读取和写入INI文件,如果您想更改配置文件类型或添加更多配置选项,只需对其进行配置即可 我将向工作区根目录添加一个隐藏目录,例如
${workspace}/.productName/product.ini
并添加一个确保ini文件在关机时得到更新的
您可以使用ResourcesPlugin获取工作区
IWorkspace workspace = ResourcesPlugin.getWorkspace();
并将其解析为一条绝对路径
IWorkspaceRoot wsRoot = workspace.getRoot();
IPath wsPath = wsRoot.getRawLocation();
IPath absoluteWsPath = wsPath.makeAbsolute();
eclipse preferences API可以帮助您@RenéLink这似乎是首选项配置——例如,我看起来更像是在ini文件中持久化属性值。您知道我是否可以使用IMemento接口来实现这一点吗?您能提供一个代码片段吗?IMemento用于保存任意对象的状态。通常在保存和恢复编辑器(关闭并重新打开eclipse)时,它不支持像preferences api这样的作用域。我更喜欢preferences api,因为它支持作用域,也支持默认值。@RenéLink请检查我的更新……我是否能够将这些属性持久化到某个配置文件中?这是否符合配置的方向?看起来它们是用来做别的。。。还是我在这里遗漏了什么?