1.读取Image
在Plug-in中定义一个getImageDescriptor方法。
public class MyPlugin extends AbstractUIPlugin {
// The plug-in ID
public static final String PLUGIN_ID = "org.myym.editor";
/**
* Returns an image descriptor for the image file at the given
* plug-in relative path.
*
* @param path the path
* @return the image descriptor
*/
public static ImageDescriptor getImageDescriptor(String path) {
return AbstractUIPlugin.imageDescriptorFromPlugin(PLUGIN_ID, path); //$NON-NLS-1$
}
}
调用代码
protected Image getEditorImage() {
return MyPlugin.getImageDescriptor("/icons/myicon.png").createImage();
}
2.读取文件
从相对路径构建File比较麻烦,但直接读取成InputStream则相对简单
InputStream is = MyClass.class.getResourceAsStream("/config.xml");
'/'代码plug-in项目的根目录
使用FileLocator将相对路径转成绝对路径
详见:http://www.zhlwish.com/2011/08/02/find-file-in-bundles-of-eclipse-rcp/
URL urlRelative= MyPlugin.getDefault().getBundle().getEntry("/config.xml");
URL url=FileLocator.toFileURL(urlRelative);