我有一个Eclipse产品,它使用我自己的插件。我想根据用户输入阅读一些属性。我想在某些用户操作上保留这些属性,并在需要时读回这些属性。可以使用一些Eclipse API来实现吗?
对上述问题的更详细说明:
假设我在配置文件abc=xyz
中有一个属性myconfig.ini
。在引导过程中,透视图将读取此属性。在使用透视图期间,某些操作会将此属性设置为新值xyz=def
。现在,我应该能够在myconfig.ini
中保存新值。因此,下次启动引导时,xyz
的值将被读取为def
而不是abc
。但是,我也可以选择通过编辑abc
文件手动将其设置为myconfig.ini
。
myconfig.ini
?我的eclipse产品项目应该存在于哪里?myconfig.ini
?答案 0 :(得分:1)
您可以使用resource markers机制:
IMarker marker = file.createMarker(IMarker.MARKER);
marker.setAttribute(IMarker.MESSAGE, "blabla");
marker.setAttribute("attr", 5);
您可以使用findMarkers
上的IResource
方法搜索标记。
另见FAQ
答案 1 :(得分:1)
您应该考虑使用apache配置API http://commons.apache.org/proper/commons-configuration/
它可以读写INI文件,如果你想更改配置文件类型或添加更多配置选项,你可以简单地配置它。
我会将隐藏目录添加到工作区根目录,例如${WORKSPACE}/.productName/product.ini
并添加ISaveParticipant以确保ini文件在关闭时更新。
您可以使用ResourcesPlugin
获取Workspace IWorkspace workspace = ResourcesPlugin.getWorkspace();
并将其解析为绝对路径
IWorkspaceRoot wsRoot = workspace.getRoot();
IPath wsPath = wsRoot.getRawLocation();
IPath absoluteWsPath = wsPath.makeAbsolute();