在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具有相同的类,因此可能会在运行时从错误版本的库中加载类,这会带来很多麻烦。如何处理这种情况?
亲切的问候
赛弗
最佳答案
真的,你没有。大多数Java类加载器对库的加载顺序不做任何保证,因此您确实需要确保不要在类路径上重复依赖项。我将检查B或C是否可以更新到较新的版本,或者LibX是否完全向后兼容。
编辑:实际上,我发现了一些可以帮助您的东西。它称为OSGi,但我还没有使用过它,但似乎它可以完成您尝试做的事情。这是介绍文章的link。