我想在Eclipse插件中包含一些二进制而不是Java相关的文件,所以我可以稍后从插件的Java代码中访问它们。
1) 据我所知,我可以添加一些文件和文件夹,以包含在构建配置的“构建/二进制构建”部分的构建中:
不幸的是,在构建插件后,文件夹“folder-to-include”和下面的所有文件都不会被复制到“bin”文件夹(或其他任何地方)。我误解了那个对话吗?我一直认为“bin”文件夹是构建项目/插件的“根”。在构建中包含二进制文件的正确方法是什么?
2)如果我设法在构建的插件中包含我的文件,我如何确定它们的路径,以便我可以在插件的一个Java类中打开并使用它们?
答案 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访问文件夹,路径也相同。