如何使用OSGi加载/获取包中的所有类?

时间:2020-03-30 16:41:18

标签: java osgi

我想将所有类加载到包中,有人知道如何在没有任何第三方库的情况下执行此操作吗?

例如, 在com.example.test软件包中,有一些类:A.java,B.java,C.java,D.java和E.java等。

是否有一种方法可以在OSGi激活时在com.example.test中加载所有类?

1 个答案:

答案 0 :(得分:2)

您可以使用Bundle.findEntries()遍历。请记住,Java类com.example.A具有路径com/example/A.class

片段 bundle类路径外,这在大多数时间都有效。可以怀疑这两种想法的合理性,但可悲的是它们都被使用了。片段是将类加载器链接到主机包的其他包。因此,您将必须找出碎片并遍历。

Bundle-ClasPath是标头。它列出了捆绑软件中应放置在捆绑软件的类路径上的一组资源。您还必须遍历它们。

如果您可以控制要遍历的包,则不要使用片段,也不要使用Bundle-ClassPath。总的来说,这是一个好主意,这些概念几乎从来都不是至关重要的。

相关问题