숙련 된 코더에게는 이것이 어리석은 질문 일 수 있다는 것을 알고 있습니다. 하지만 내 프로젝트에 사용 된 다른 프레임 워크 / jar에 필요한 라이브러리 (http 클라이언트)가 있습니다. 그러나 모두 다음과 같은 다른 주요 버전이 필요합니다.
httpclient-v1.jar => Required by cralwer.jar
httpclient-v2.jar => Required by restapi.jar
httpclient-v3.jar => required by foobar.jar
클래스 로더는 어떻게 든 그들을 분리 할 수있을만큼 지능적입니까? 그렇지 않습니까? 클래스가 세 jar 모두에서 동일한 경우 클래스 로더는이를 어떻게 처리합니까? 어느 것이로드되고 그 이유는 무엇입니까?
Classloader는 정확히 하나의 jar 만 픽업합니까? 아니면 임의로 클래스를 혼합합니까? 예를 들어 클래스가 Version-1.jar에서로드 된 경우 동일한 클래스 로더에서로드 된 다른 모든 클래스가 모두 동일한 jar로 이동합니까?
이 문제를 어떻게 처리합니까?
에 의해 "하나의 단위 / 패키지"로 표시되도록 항아리를 "required.jar"에 "통합"하는 방법이 Classloader
있습니까?