我有一个基于eclipse插件的RCP应用程序。我有一个文件,我想把它放在我的插件的根目录中并从那里访问它,所以它可以在任何平台(Windows或Linux)上使用。例如,我的插件名称是测试,我有一个文件 TestFile.eap
目前我正在使用桌面
private String EapName = "C:\\Users\\abc\\Desktop\\TestFile.eap";
我想将TestFile.eap放在Test的根目录中并从那里访问它,如:
File f = new File(EapName);
如何获取我的eclipse插件的根目录?
谢谢!
答案 0 :(得分:0)
两种可能性:
1)该文件是静态的,并作为插件的一部分进行部署:
URL url = new URL("platform:/plugin/my.plugin.id/the/relative/path");
InputStream inputStream = url.openConnection().getInputStream();
2)文件是动态创建的,你需要一个放置它的地方:
IPath pluginStatePath = MyPlugin.getDefault().getStateLocation();
IPath filePath = pluginStatePath.append("my/relative/filepath");
有关这两种方法的详细信息,请参阅Where do plugins store their state?
答案 1 :(得分:0)
使用
Bundle bundle = Platform.getBundle("your plugin id");
URL pluginURL = FileLocator.find(bundle, new Path("TestFile.eap"), null);
URL fileURL = FileLocator.toFileURL(pluginURL);
File file = new File(fileURL.getPath());
如果您的插件打包为jar(通常是这样),这会将文件从jar提取到临时位置,以便您可以使用文件API访问它。
请务必将该文件包含在插件build.properties
文件中。