Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как добавить библиотеки в jar файл

Inadiasnd Ученик (226), закрыт 2 месяца назад
Добрый вечер! Я к сожалению не знаю джаву, не мне нужно немного изменить код имеющегося jar файла, и для этого нужно добавить несколько библиотек в него:
import org.telegram.telegrambots.meta.TelegramBotsApi;
import org.telegram.telegrambots.meta.api.methods.send.SendDocument;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;

Подскажите пожалуйста, как это можно сделать?
Лучший ответ
Def Гений (50742) 4 месяца назад
jar-файл - это zip-архив, так что сам процесс добавления состоит просто в закидывании архиватором внутрь нужных файлов из архивов библиотек по нужному пути. Другой вопрос, что такое добавление не несёт в себе никакого функционального смысла.
Остальные ответы
Андрей Панарин Искусственный Интеллект (237616) 4 месяца назад
А рядом с этим JAR-файлом, снаружи, есть другие JAR-файлы?
Можете ли вы положить свои библиотеки вместе с этими другими JAR-файлами?

Также стоит в открытом у вас JAR-файле открыть папку META-INF и почитать, что написано в файле MANIFEST.MF. Там по ключу Class-Path могут быть перечислены зависимости этого JAR-файла - другие JAR-файлы, которые нужны ему для нормальной работы, или папки, в которых эти JAR-файлы находятся. Если вы положите свои библиотеки в одну из таких папок, то они будут доступны приложению согласно этому манифесту.
InadiasndУченик (226) 4 месяца назад
Андрей Панарин Искусственный Интеллект (237616) Понял. Тут либо JAR-файл всего один, либо его запускают каким-то скриптом, который подтягивает остальные. Судя по структуре JAR-файла, в него распакованы все его зависимости и лежат просто папочками в нем же. Теоретически, можно попробовать сделать так же - подложить содержимое своих библиотек в этот JAR. Проблемы могут быть, если JAR-библиотека имеет цифровую подпись. В таком случае классы могут не заработать из-за того, что их достали из джарника. На всякий случай сделайте резервную копию JAR-файла перед его изменением.
InadiasndУченик (226) 4 месяца назад
в CheatDetector.class я буду код изменять, и там же мне импорт библиотек нужен
InadiasndУченик (226) 4 месяца назад
InadiasndУченик (226) 4 месяца назад
если библиотеки которые мне нужно, просто посместить по пути который указан при их импорте, то откуда сами библиотеки тогда взять? извините, если я слишком тупой..
import org.telegram.telegrambots.meta.TelegramBotsApi;
import org.telegram.telegrambots.meta.api.methods.send.SendDocument;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;
InadiasndУченик (226) 4 месяца назад
откуда взять сами библиотеки чтобы положить в проект?
Андрей Панарин Искусственный Интеллект (237616) Можете найти их на официальных сайтах или в репозиториях их разработчиков. Я вижу вот такой: https://github.com/rubenlagus/TelegramBots Там идет ссылка для Maven: org.telegram telegrambots 6.9.7.1 По этим данным можно найти и скачать собранную библиотеку вот тут: https://mvnrepository.com/artifact/org.telegram/telegrambots Выбрать версию и скачать ее jar:
InadiasndУченик (226) 4 месяца назад
Спасибо огромное за помощь, сейчас попробую )
Андрей Панарин Искусственный Интеллект (237616) Посмотрел, там нет пакета meta. Нашел еще вот такую: https://mvnrepository.com/artifact/org.telegram/telegrambots-meta/6.9.7.1 Можно их вместе добавить, и будут все четыре класса. Разумеется, если в вашем джарнике их еще нет.
InadiasndУченик (226) 4 месяца назад
понял
InadiasndУченик (226) 4 месяца назад
все сделал, на импорт библиотек не жалуется, но ошибка в новом коде =(
Андрей Панарин Искусственный Интеллект (237616) Это уже по вашему коду нужно смотреть.
Похожие вопросы