我有一个插件项目。
它的结构是这样的:
项目名
因此,我想将此 myFolder 用作 MyCode.java 文件中的资源。
如何在没有的情况下将文件夹 myFolder 添加到类路径中?
使用 getClass()。getResource(“myFolder”)需要 myFolder 在classpath中,对吗?
我不能使用
new File(MyCode.class.getProtectionDomain().getCodeSource().getLocation().getFile()).getParent()
获取项目名称,因为上述行的输出将根据其使用的系统而改变,对吗?
答案 0 :(得分:0)
对于Eclipse插件,您只需将该文件夹添加到插件的build.properties
。
然后使用FileLocator
类访问该文件夹的内容:
Bundle bundle = .... your plugin's bundle
IPath path = new Path("myFolder/xxxxxx");
URL url = FileLocator.find(bundle, path, null);
URL fileUrl = FileLocator.toFileURL(url);
来自FileLocator.find
的网址使用特殊的Eclipse协议,但如果您只想调用openStream
,则可以使用。
来自FileLocator.toFileURL
的网址可用于将对象作为文件进行访问。调用此方法可能会导致Eclipse将插件jar解压缩到临时位置。