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

Java 如何使用OSGi加载/获取包中的所有类?,java,osgi,Java,Osgi,我想在一个包中加载所有类,有没有人知道在没有任何第三方库的情况下如何做到这一点 比如说,, 在com.example.test包中,有几个类:A.java、B.java、C.java、D.java和E.java等 有没有办法在OSGi激活时加载com.example.test中的所有类?您可以使用Bundle.findEntries()迭代条目。请记住,java类com.example.a有一个路径com/example/a.class 除了片段和bundle类路径之外,这在大多数情况下都有效。

我想在一个包中加载所有类,有没有人知道在没有任何第三方库的情况下如何做到这一点

比如说,, 在com.example.test包中,有几个类:A.java、B.java、C.java、D.java和E.java等

有没有办法在OSGi激活时加载com.example.test中的所有类?

您可以使用
Bundle.findEntries()
迭代条目。请记住,java类
com.example.a
有一个路径
com/example/a.class

除了片段和bundle类路径之外,这在大多数情况下都有效。这两种观点的合理性都值得怀疑,但可悲的是,它们被使用了。片段是将类加载器链接到主机包中的其他包。因此,您必须找出这些片段并遍历它们

束是一个标头。它列出了捆绑包中应该放在捆绑包类路径上的一组资源。你也必须穿过它们

如果您可以自己控制要遍历的包,那么不要使用片段,也不要使用包类路径。总之,这是一个好主意,这些概念几乎从来都不是关键