如何在Eclipse插件中指定和读取属性

时间:2013-07-23 05:24:43

标签: eclipse properties eclipse-plugin eclipse-rcp

我有一个Eclipse产品,它使用我自己的插件。我想根据用户输入阅读一些属性。我想在某些用户操作上保留这些属性,并在需要时读回这些属性。可以使用一些Eclipse API来实现吗?

对上述问题的更详细说明:

假设我在配置文件abc=xyz中有一个属性myconfig.ini。在引导过程中,透视图将读取此属性。在使用透视图期间,某些操作会将此属性设置为新值xyz=def。现在,我应该能够在myconfig.ini中保存新值。因此,下次启动引导时,xyz的值将被读取为def而不是abc。但是,我也可以选择通过编辑abc文件手动将其设置为myconfig.ini

  1. 我如何管理myconfig.ini?我的eclipse产品项目应该存在于哪里?
  2. myconfig.ini
  3. 中管理阅读,编写和更新属性的最佳API是什么?

2 个答案:

答案 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();