在eclipse插件中查找资源的路径

时间:2015-06-26 08:48:39

标签: java eclipse eclipse-plugin

我正在开发一个eclipse插件,我想根据所选的菜单选项运行一些脚本,这些脚本是jar本身的一部分。当我将插件项目作为eclipse本身的eclipse应用程序运行时,我能够获得这些脚本的路径。但是当项目作为插件(jar)导出时,放在&eclipse / eclipse / feature'并且在eclipse中使用时,在jar中解决这些脚本的路径存在问题。 我尝试了以下不同的方式,我可以在SO中找到但问题尚未解决。 基本上我想知道如何以编程方式获取插件的路径,以便从插件的路径我可以构建脚本的实际路径。

插件的ID:MyPlugin

试验1:

String scriptLocation = FileLocator.toFileURL(Platform.getBundle("MyPlugin").getEntry("src/"+scriptName)).getPath();

试验2:

URL url = new URL("platform:/features/ade/src/"+scriptRelativePath);

String scriptLocation = FileLocator.toFileURL(url).getPath();
// This gave a runtime error, :features is not applicable to protocol 'platform'

试验3:

URL url = new URL("platform:/plugin/ade/src/"+scriptRelativePath);

String  scriptLocation = FileLocator.toFileURL(url).getPath();

1 个答案:

答案 0 :(得分:2)

使用:

Bundle bundle = Platform.getBundle("plugin id");

URL url = FileLocator.find(bundle, new Path("relative path"), null);

url = FileLocator.toFileURL(url);

'relative path'是相对于插件根目录的路径。

FileLocator.toFileURL可以将资源解压缩到临时位置。