我知道对于经验丰富的编码人员来说,这可能是一个愚蠢的问题。但是我有一个库(http客户端),我的项目中使用的其他一些框架/罐也需要。但它们都需要不同的主要版本,例如:
httpclient-v1.jar => Required by cralwer.jar
httpclient-v2.jar => Required by restapi.jar
httpclient-v3.jar => required by foobar.jar
类加载器是否足够智能以某种方式将它们分开?很有可能不是吗?万一所有三个jar中的Class都相同,Classloader如何处理这个问题。加载哪一个,为什么?
Classloader是仅拾取一个jar还是将其任意混合?因此,例如,如果从Version-1.jar中加载了一个类,那么从同一类加载器中加载的所有其他类都将都放入同一个jar中吗?
您如何处理这个问题?
是否有某种技巧可以以某种方式将罐子“合并”到“ required.jar”中,从而使罐子被Classloader
或以某种方式链接为“一个单元/包装” ?