我想在我的 Eclipse 插件中包含一些与 Java 无关的二进制文件,这样我以后可以从插件的 Java 代码中访问它们。
1) 据我所知,我可以在构建配置的“构建/二进制构建”部分中添加一些文件和文件夹以包含在构建中:
不幸的是,在构建插件后,“folder-to-include”文件夹和下面的所有文件都没有复制到“bin”文件夹(或其他任何地方)。我误解了那个对话吗?我一直认为“bin”文件夹是构建项目/插件的“根”。在构建中包含二进制文件的正确方法是什么?
2) 如果我设法将我的文件包含在构建的插件中,我如何确定它们的路径以便我可以在插件的一个 Java 类中打开和使用它们?
最佳答案
您在构建中 checkin 的所有内容都应包含在顶层的插件 jar 中(bin
目录经过特殊处理)。
要查找插件中的对象,请使用:
URL url = FileLocator.find(bundle, new Path(path), null);
哪里path
是插件中的相对路径,bundle
是插件Bundle
.你可以获得 Bundle
来自 BundleContext
传递给插件激活器或使用 Platform.getBundle("plugin id")
由此返回的 URL 将使用 bundle
方案,将其转换为 file
网址使用:
URL fileURL = FileLocator.toFileURL(url);
返回的文件 URL 可能位于临时位置。
更新:当您使用 Eclipse(使用运行/Eclipse 应用程序)运行您的插件时,不会构建任何 jar 并且文件夹不会复制到任何地方。你还在用FileLocator
访问文件夹的 API 和路径是相同的。
关于java - 在 Eclipse 插件中包含和访问二进制(非 Java)文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21816374/