在Java和Eclipse中管理对库的多个版本的依赖性

mah*_*nya 7 java versioning jar

在Eclipse环境中,我有项目A.A对项目或库B和C具有依赖性.(如果它们是项目或库则没有区别)B依赖于LibX.v1,C依赖于LibX.v2.在运行时,A将需要B.jar和C.jar.另外,B.jar中的类需要LibX.v1,而C.jar中的类需要LibX.v2.作为同一个库的不同版本,LibX.v1和LibX.v2具有相同的类,因此可能会在运行时从错误的库版本加载类,从而导致很多麻烦.我该如何处理这种情况?

亲切的问候Seref

dan*_*ben 4

真的,你不知道。大多数 Java 类加载器对于加载库的顺序不提供任何保证,因此您确实需要确保不要重复类路径上的依赖项。我会检查 B 或 C 是​​否可以更新到较新的版本,或者 LibX 是否完全向后兼容。

编辑:实际上,我发现了一些可能对你有帮助的东西。它叫做 OSGi,我还没有使用过它,但看起来它可能会做你想做的事情。这是介绍文章的链接。