как заставить вызов метода из определенного версионного JAR, когда присутствует несколько версионных JAR - PullRequest
3 голосов
/ 21 января 2011

У меня есть две версии одной и той же библиотеки, например abc-1.0.jar и abc-2.0.jar я не могу избежать того, чтобы мое приложение работало, части кода еще не переведены на 2.0 как заставить объект класса и методы быть из abc-2.0.jar? но не из 1.0.jar в моем модуле.

любая помощь с благодарностью!

С уважением Sashank

Ответы [ 2 ]

1 голос
/ 21 января 2011

Не существует абсолютно общего и все же простого решения.

  • Самое простое решение - поместить 2 файла JAR в путь к классу, с файлом 2.0 JAR перед файлом 1.0 JAR. Это, вероятно, будет работать для вашего варианта использования, но не будет работать, если есть случаи, когда вам нужно использовать более старую версию какого-либо класса.

  • Другое решение состоит в том, чтобы поместить рассматриваемый класс в новый файл JAR и поместить его в путь к классам перед файлами JAR 1.0 и 2.0. Но реорганизация файлов JAR может быть невозможной.

  • Сложный способ - написать собственный загрузчик классов для файлов JAR 1.0 и 2.0. Это много работы, и, вероятно, не нужно.

0 голосов
/ 21 января 2011

Если при наличии неоднозначности (один и тот же класс в обоих банках) вы хотите использовать банку 2.0, то вы можете просто убедиться, что баночка 2.0 находится перед банкой 1.0 на вашем пути к классам.

Еслиэто просто один (или несколько) классов, где вы хотите использовать банку 2.0, и другие, где вы хотите использовать банку 1.0, проблема становится значительно более сложной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...