У меня есть программа, которой нужно несколько сторонних библиотек, и на данный момент она упакована так:
zerobot.jar (my file)
libs/pircbot.jar
libs/mysql-connector-java-5.1.10-bin.jar
libs/c3p0-0.9.1.2.jar
Насколько я знаю, «лучший» способ работы со сторонними библиотеками - это поместить их в classpath в манифесте моего jar-файла, который будет работать кроссплатформенно, не будет замедлять запуск они могут) и не сталкиваются с юридическими проблемами (которые могут перепаковывать).
Проблема для пользователей, которые сами поставляют сторонние библиотеки (пример использования, обновление для исправления ошибки). У двух из библиотек есть номер версии в файле, который добавляет хлопот.
Мое текущее решение состоит в том, что моя программа имеет процесс начальной загрузки, который создает новый загрузчик классов и создает экземпляр программы, правильно использующей его. Этот пользовательский загрузчик классов добавляет все файлы .jar из lib / в свой путь к классам.
Мой текущий способ работает нормально, но у меня теперь есть два пользовательских загрузчика классов в моем приложении, и недавнее изменение в коде вызвало проблемы, которые трудно отладить, поэтому, если есть лучший способ, я бы хотел устранить эту сложность , Это также похоже на чрезмерную инженерию, потому что я уверен, что это очень распространенная ситуация.
Итак, мой вопрос: как мне это сделать?