OSGi - 获取包文件名 (*.jar)
OSGi - get bundle filename (*.jar)
假设我有 Bundle bundle=...;
我可以得到这个 OSGi 包的文件名吗?我搜索过但没有找到任何东西。我现在唯一能做的就是通过 headers 获取包符号名称,但它不是文件名,因为符号名称在清单中设置并且不能等于文件名。
总的来说,答案是否定的。 OSGi 规范不要求框架保留 jar 文件。例如,OSGi 框架实现可以将 jar 文件扩展到文件系统中或将内容放入数据库中。可以随意以任何方式存储包内容。
OSGi 框架的实现可能会提供非标准的方法来定位 jar(如果它仍然存在)。我相信 Equinox 提供了可用于此目的的 FileLocator 服务。
假设我有 Bundle bundle=...;
我可以得到这个 OSGi 包的文件名吗?我搜索过但没有找到任何东西。我现在唯一能做的就是通过 headers 获取包符号名称,但它不是文件名,因为符号名称在清单中设置并且不能等于文件名。
总的来说,答案是否定的。 OSGi 规范不要求框架保留 jar 文件。例如,OSGi 框架实现可以将 jar 文件扩展到文件系统中或将内容放入数据库中。可以随意以任何方式存储包内容。
OSGi 框架的实现可能会提供非标准的方法来定位 jar(如果它仍然存在)。我相信 Equinox 提供了可用于此目的的 FileLocator 服务。