Java, Classpath, Classloading => Несколько версий одной и той же банки /проекта

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

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

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

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

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

Есть ли какая-то хитрость для того, чтобы как-то «включить» банки в «required.jar», чтобы Classloader или как-то связаны?

105 голосов | спросил jens 24 Mayam11 2011, 06:28:42

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132