Eclipse RCP中资源的应用程序范围位置在哪里?

时间:2014-01-15 11:18:40

标签: java eclipse osgi eclipse-rcp

我将一些第三方应用程序包装到Eclipse插件中。

此应用程序使用" current"中的一些数据文件。目录,即运行应用程序的目录。

最初,我将所有这些文件放在Eclipse插件项目的第一级,并可以通过

访问这些文件
bundle.getEntry("./conf/conf.xml")

遗憾的是,此代码会创建奇怪的网址,例如

bundleentry://88.fwk1692538903/./conf/conf.xml

为什么会这样?是否可以将所有应用程序范围的文件放入某个全局位置并从插件中引用它?

1 个答案:

答案 0 :(得分:2)

使用org.eclipse.core.runtime.FileLocatorbundleentry网址转换为普通file网址:

URL bundleURL = bundle.getEntry("...");

URL fileURL = FileLocator.toFileURL(bundleURL);

注意:如果插件位于jar中而不是在安装期间展开,则返回的URL可能会引用插件已扩展的元数据中的临时位置。