Bunun deneyimli kodlayıcılar için aptalca bir soru olabileceğini biliyorum. Ancak, projemde kullanılan diğer çerçevelerin / kavanozların bazılarının gerektirdiği bir kitaplığım (bir http istemcisi) var. Ancak hepsi aşağıdaki gibi farklı ana sürümler gerektirir:
httpclient-v1.jar => Required by cralwer.jar
httpclient-v2.jar => Required by restapi.jar
httpclient-v3.jar => required by foobar.jar
Sınıf yükleyici, onları bir şekilde ayıracak kadar akıllı mı? Büyük ihtimalle değil mi? Bir Sınıfın her üç kavanozda da aynı olması durumunda Classloader bunu nasıl halleder? Hangisi yüklü ve neden?
Classloader sadece bir kavanoz mu alıyor yoksa sınıfları rastgele karıştırıyor mu? Öyleyse, örneğin Version-1.jar'dan bir sınıf yüklenirse, aynı sınıf yükleyiciden yüklenen diğer tüm sınıflar aynı jar'e gidecek mi?
Bu sorunu nasıl çözüyorsunuz?
Kavanozları bir şekilde "required.jar" a "dahil etmek" için bir numara var mı, böylece bunlar, tarafından "bir birim / paket" olarak Classloader
veya bir şekilde bağlantılı olarak görülüyor mu?