2

独自のプラグインを使用する Eclipse 製品があります。ユーザー入力に基づいていくつかのプロパティを読み取りたい。これらのプロパティをいくつかのユーザー アクションで保持し、必要に応じてそれらのプロパティを読み返したいと考えています。これは、いくつかの Eclipse API を使用して実現できますか?

上記の問題のより詳細な説明:

abc=xyzconfig file にプロパティがあるとしますmyconfig.ini。このプロパティは、ブートストラップ プロセス中にパースペクティブによって読み取られます。パースペクティブの使用中に、何らかのアクションによってこのプロパティが新しい値に設定されますxyz=def。これで、新しい値を に保存できるはずmyconfig.iniです。そのため、次にブートストラップが行われるとき、 の値はではなくxyzとして読み取られます。ただし、ファイルを編集して手動で設定することもできます。defabcabcmyconfig.ini

  1. どうすれば管理できmyconfig.iniますか? Eclipse 製品プロジェクト内のどこに存在する必要がありますか?
  2. でプロパティの読み取り、書き込み、更新を管理するのに最適な API は何myconfig.iniですか?
4

2 に答える 2

1

Apache 構成 API http://commons.apache.org/proper/commons-configuration/の使用を検討する必要があります。

INI ファイルを読み書きできます。構成ファイルの種類を変更したり、構成オプションを追加したりしたい場合は、簡単に構成できます。

たとえば、ワークスペースのルートに隠しディレクトリを追加し、シャットダウン時にiniファイルが確実に更新されるようにするISaveParticipant${WORKSPACE}/.productName/product.iniを 追加します。

ResourcesPlugin を使用してワークスペースを取得できます

  IWorkspace workspace = ResourcesPlugin.getWorkspace();

絶対パスに解決します

  IWorkspaceRoot wsRoot = workspace.getRoot();
  IPath wsPath = wsRoot.getRawLocation();
  IPath absoluteWsPath = wsPath.makeAbsolute();
于 2013-07-24T06:27:38.647 に答える
1

リソース マーカーメカニズムを使用できます。

IMarker marker = file.createMarker(IMarker.MARKER);
marker.setAttribute(IMarker.MESSAGE, "blabla");
marker.setAttribute("attr", 5);

findMarkersのメソッドを使用してマーカーを検索できますIResourceよくある質問もご覧ください

于 2013-07-23T12:38:42.527 に答える