このメソッドを使用して、アドレスをの適切なファイルURLにFileLocator.resolve(url)変換できます。bundleentry://something/somewhere/x.txt/mnt/foo/somewhere/x.txt
ただし、 https://bugs.eclipse.org/bugs/show_bug.cgi?id = 145096にも記載されているように、URLはエスケープされません。例として、参照されるバンドルを含むEclipseインストールがスペースを含むディレクトリにある場合、によって返されるURLにはFileLocator.resolveまだスペースが含まれているため、呼び出しurl.toURI()は失敗します。
- URLに必要なすべての文字を手動でエスケープするにはどうすればよいですか?
File現在のバンドルに相対的なパスに基づいてオブジェクトを取得するにはどうすればよいですか?
dir参考までに、プラグインの.jarファイルがスペースを含むディレクトリにある場合、そのファイル内のディレクトリを検索しようとすると失敗するコードは次のとおりです。
final IPath pathOfExampleProject = new Path("dir");
final Bundle bundle = Platform.getBundle(AproveIDs.PLUGIN_ID);
final URL url = FileLocator.find(bundle, pathOfExampleProject, null);
final URL url2 = FileLocator.toFileURL(url);
url2.toURI(); // Illegal character in path at index [...]