Java как использовать несколько версий одной библиотеки, возможно, используя загрузчики классов - PullRequest
0 голосов
/ 12 апреля 2020

Я разрабатываю плагин java (для BungeeCord), который использует методы из Гуавы 28.2. Но BungeeCord, программа, которая фактически загружает мой плагин, использует только Guava 21. Поэтому мой плагин падает, так как не может найти некоторые методы из Guava 28.2.

Есть ли способ заставить мой плагин загрузить свою собственную версию гуавы и использовать эту версию вместо старой? Можно ли это сделать с помощью classloader magi c?

Любая помощь приветствуется

1 Ответ

0 голосов
/ 13 апреля 2020

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

Опции, за которыми я следую:

  • Понижение до Guava 21.
  • Предложите обновление до Guava 21.
  • Если этот плагин работает часть сервера приложений, попробуйте развернуть как отдельное приложение, использовать межприкладное взаимодействие.
  • Попробуйте OSGi.
...