在Eclipse RCP捆绑包工作目录中包含一个文件

Asw*_*win 4 eclipse rcp bundle path

我想在Eclipse插件的根目录中包含一个文件(文本,图像等)。使用测试main方法运行程序时,可以在工作目录中找到该文件。但是当我将插件作为Eclipse应用程序运行时,根据操作系统的不同,工作目录包含不同的文件,而我找不到文本文件。我尝试将文件添加到xml(build.properties)的“构建”选项卡中的二进制构建中。它仍然无法正常工作。

我如何找到文本文件的路径?如何确保文本文件随插件一起导出?

谢谢

gre*_*449 6

当您构建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);
Run Code Online (Sandbox Code Playgroud)

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

URL fileURL = FileLocator.toFileURL(url);
Run Code Online (Sandbox Code Playgroud)

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