[英]How to get the Bundle-SymbolicName from an IProject?
我正在为eclipse项目编写向导,并希望在Manifest.MF
包括另一个插件Require-Bundle
。
我有要包含的IProject
,是否可以在不解析Manifest.MF
情况下访问其Bundle-SymbolicName
? 还是有其他方法可以避免手动解析?
IProject
可能不表示插件,并且没有任何直接API来获取插件ID。
您可以使用普通的Java Manifest
类使用类似以下内容的方式查看MANIFEST.MF:
IProject project = ...
IFile manifestResource = project.getFile(new Path("META-INF/MANIFEST.MF"));
if (manifestResource.exists()) {
try (InputStream stream = manifestResource.getContents()) {
Manifest manifest = new Manifest();
manifest.read(stream);
String symbolicName = manifest.getMainAttributes().getValue("Bundle-SymbolicName");
} catch (CoreException | IOException ex) {
...
}
}
该代码改编自Eclipse PDE用于查找插件的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.