在Eclipse插件中包含和访问二进制(非Java)文件

时间:2014-02-16 20:47:36

标签: java eclipse eclipse-plugin

我想在Eclipse插件中包含一些二进制而不是Java相关的文件,所以我可以稍后从插件的Java代码中访问它们。

1) 据我所知,我可以添加一些文件和文件夹,以包含在构建配置的“构建/二进制构建”部分的构建中:

enter image description here

不幸的是,在构建插件后,文件夹“folder-to-include”和下面的所有文件都不会被复制到“bin”文件夹(或其他任何地方)。我误解了那个对话吗?我一直认为“bin”文件夹是构建项目/插件的“根”。在构建中包含二进制文件的正确方法是什么?

2)如果我设法在构建的插件中包含我的文件,我如何确定它们的路径,以便我可以在插件的一个Java类中打开并使用它们?

1 个答案:

答案 0 :(得分:3)

您在构建中检查的所有内容都应包含在顶层的插件jar中(bin目录是专门处理的。)

要在插件中查找对象,请使用:

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

其中path是插件中的相对路径,bundle是插件Bundle。您可以从传递给插件激活器的Bundle获取BundleContext或使用Platform.getBundle("plugin id")

从此返回的网址将使用bundle方案,将其转换为file网址使用:

URL fileURL = FileLocator.toFileURL(url);

返回的文件网址可能位于临时位置。

更新:当您使用Eclipse(使用Run / Eclipse Application)运行插件时,不会生成任何jar,并且不会将文件夹复制到任何位置。您仍然使用FileLocator API访问文件夹,路径也相同。