我正在为 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 用于查找插件的代码。
关于java - 如何从 IProject 获取 Bundle-SymbolicName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55324229/