Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Eclipse插件中指定和读取属性_Eclipse_Properties_Eclipse Plugin_Eclipse Rcp - Fatal编程技术网

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

如何在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。但是,我也

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

对上述问题的更详细描述:

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

  • 如何管理myconfig.ini?它应该存在于我的eclipse产品项目中的什么位置
  • 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请检查我的更新……我是否能够将这些属性持久化到某个配置文件中?这是否符合配置的方向?看起来它们是用来做别的。。。还是我在这里遗漏了什么?