作成日:2010/05/22
Mac OS X 10.5.8 |
Java SE6 |
Eclipse RCP/Plug-in Developers Galileo SR2 |
Pleiades Eclipse日本語化プラグイン |
1.Eclipse のワークスペース
Eclipse では、Eclipse 自身の作業領域としてワークスペースが用意されています。このワークスペースのパスをプログラム中から参照することができるので、Eclipseがインストールされている場所や、デフォルトと違う場所にワークスペースを作っていたとしても問題のないアプリケーションが作成可能です。
2.ワークスペース参照の準備
ワークスペース・オブジェクトは ResourcesPlugin クラスから取得することができます。この ResourcesPlugin クラスをはじめて使用する場合、プラグインの「依存関係」に "org.eclipse.core.resources" を追加しておく必要があります。
2−1."org.eclipse.core.resources" の追加方法
ResourcesPlugin クラスを使用したいプラグインプロジェクトの "META-INF" ディレクトリに、 "MANIFEST.MF" ファイルがあるので開きます。ダブルクリックすれば、Eclipseプラグイン開発で標準の「マニフェスト・エディター」で開かれるはずです。ファイルを右クリックして「アプリケーションから開く」からアプリケーションを明示して開くこともできます。
MANIFEST.MF が開いたら「依存関係」タブを選択し、「必須プラグイン」の欄にある「追加...」ボタンを選択します。「プラグインの選択」ダイアログが開くので "org.eclipse.core.resources" を選択して追加します。変更内容を保存すれば準備は完了です。
もし「org.eclipse.core.resources.ResourcesPlugin が見つかりません。」とか「ResourcesPlugin の名前が解決できません。」というエラーが出る場合は、この準備をしていないか、MANIFEST.MFの変更内容を保存し忘れている可能性があります。
3.ワークスペースのパスを取得する
プラグインプロジェクトで、ワークスペース参照の準備が整っていれば、次のコードでワークスペースのパスを取得することができます。(wsPathはワークスペースのパスを格納するString型の変数)
String wsPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString();
最初の "ResourcesPlugin.getWorkspace()"
で Eclipse のワークスペース・オブジェクトを取得します。 ワークスペースには様々なオブジェクトが保存されるので、 "getRoot()"
でワークスペースのトップを選択します。続く "getLocation()"
ではワークスペースのトップがどの位置にあるかをファイルシステムの絶対パスで取得します。この Location は IPath という型なので、"toOSString()"
を使って扱いやすい文字列に変更しました。OS によってファイルの区切り文字など一部異なる表現がありますが、この "toOSString()" なら OS を考慮してパスの文字列変換を行ってくれます。文字列よりも File オブジェクトの方が都合がいい場合は、 "toOSString()" の代わりに "toFile()"
で File オブジェクトに変換することもできます。