Имам програма, която се нуждае от няколко библиотеки на трети страни и в момента е пакетирана така:
zerobot.jar (my file) libs/pircbot.jar libs/mysql-connector-java-5.1.10-bin.jar libs/c3p0-0.9.1.2.jar
Доколкото знам, „най-добрият“ начин да се справя с библиотеките на трети страни е да ги поставим в пътеката на класа в манифеста на моя jar файл, който ще работи между платформи, няма да забави стартирането (което групирането им може) и не се натъква на правни проблеми (които преопаковането може да доведе).
Проблемът е за потребители, които сами доставят библиотеките на трети страни (примерен случай на употреба, надстройването им за коригиране на грешка). Две от библиотеките имат номера на версията във файла, което създава проблеми.
Моето текущо решение е, че моята програма има процес на стартиране, който прави нов класов зареждащ инструмент и инстанцира програмата правилно, като го използва. Този персонализиран зареждащ клас добавя всички .jar файлове в lib/ към своя класов път.
Сегашният ми начин работи добре, но сега имам два персонализирани зареждащи класове в моето приложение и скорошна промяна в кода причини проблеми, които са трудни за отстраняване на грешки, така че ако има по-добър начин, бих искал да премахна тази сложност. Също така изглежда като прекомерно инженерство за това, което съм сигурен, че е много често срещана ситуация.
Въпросът ми е как трябва да направя това?