Java, путь к классам, загрузка классов => Несколько версий одного и того же jar-файла / проекта

Я знаю, что это может быть глупый вопрос для опытных программистов. Но у меня есть библиотека (http-клиент), которую требуют некоторые другие фреймворки / банки, используемые в моем проекте. Но все они требуют разных основных версий, например:

httpclient-v1.jar => Required by cralwer.jar
httpclient-v2.jar => Required by restapi.jar
httpclient-v3.jar => required by foobar.jar

Достаточно ли умен загрузчик классов, чтобы как-то разделить их? Скорее всего, нет? Как с этим справляется загрузчик классов, если класс одинаковый во всех трех банках. Какой загружается и почему?

Загрузчик классов берет только одну банку или произвольно смешивает классы? Так, например, если класс загружен из Version-1.jar, все остальные классы, загруженные из одного загрузчика классов, попадут в одну и ту же банку?

Как вы справляетесь с этой проблемой?

Есть ли какой-то трюк, чтобы каким-то образом «включить» jar-файлы в «required.jar», чтобы они воспринимались Classloader или как-то связанно?

114
задан Hardik Mishra 27 November 2012 в 07:41
поделиться