eclipse - 在 Eclipse RCP 包工作目录中包含一个文件

标签 eclipse path bundle rcp

我想在 Eclipse 插件的根目录中包含一个文件(文本、图像等)。 当我使用测试主方法运行程序时,我可以在工作目录中找到该文件。 但是当我将插件作为 Eclipse 应用程序运行时,工作目录包含不同的文件,具体取决于操作系统,并且我找不到文本文件。 我尝试将文件添加到 xml (build.properties) 的构建选项卡中的二进制构建中。它仍然不起作用。

如何找到文本文件的路径?如何确保文本文件是通过插件导出的?

谢谢

最佳答案

当您构建 Eclipse 插件时,插件中的所有内容都会放入“plugins”目录中的 jar 文件中。只要您的文件列在“build.properties”(构建选项卡)中,它就会包含在 jar 中。

要访问 jar 中的文件,请使用:

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

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

返回的 URL 适合传递给各种 Eclipse API,但不能与普通 Java API(例如 File)一起使用。要将其转换为文件 URL,请使用:

URL fileURL = FileLocator.toFileURL(url);

这会将文件从 jar 复制到一个临时位置,可以将其作为普通文件进行访问。

您还可以使用以下方式获取 bundle :

Bundle bundle = FrameworkUtil.getBundle(getClass());

这避免了必须包含插件 ID。

关于eclipse - 在 Eclipse RCP 包工作目录中包含一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25394534/

相关文章:

objective-c - Xcode - 将 sqlite3 数据库保存在 Library 文件夹中

java - Eclipse(Java 和 Hibernate)内容助手不工作

android - 隐藏布局文件中的警告

javascript - 删除 URL 中的最后一个目录

java - gwt,外部源文件夹的路径

android - 将字符串放入处理程序

java - 为什么 Eclipse 在另一个类中使用时不能处理 @value?

java - 每次调试/部署时应用程序数据是否被删除?安卓 Eclipse

php - file_put_contents() 期望参数 1 是有效路径,给定字符串

ios - 使用 CartoDB SDK 解码 Bundle MBTiles 文件中的图 block 时出错