问题描述
我想以编程方式重新计算 Osgi Jar 的“导入包”。我尝试使用 bnd 分析器。
try(Analyzer analyzer = new Analyzer()) {
analyzer.setJar(new File(filename));
return analyzer.getImportPackage();
}
这将返回 MANIFEST.MF 的(错误的)现有导入。如何以编程方式重新计算 Osgi Jar 的“导入包”?
更新 添加为 BJ Hargrave calMainfest() 建议不起作用:
try(Analyzer analyzer = new Analyzer()) {
analyzer.setJar(new File(filename));
analyzer.calcManifest();
return analyzer.getImportPackage();
}
它似乎使用了 Jar 中包含的现有 MANIFEST.MF。 最好的祝福 纪章
解决方法
您需要调用 func require<T>(_ name: String) throws -> T {
guard let index = self.index(forKey: name) else {
throw DictionaryExtractionError.missingProperty(name)
}
guard let t = self[index].value as? T else {
throw DictionaryExtractionError.casting(name)
}
return t
}
来计算新的清单。否则它只会使用现有的清单。