Проблемы с либами на сервере

Сообщения
477
Лучшие ответы
9
Реакции
40
Версия Minecraft
1.12.2
Драсть. Пишу мод, который будет взаимодействовать с ботом дискорда. Всё готово, работает в среде, закидываю на сервер вместе с либами - получаю
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper
етить его так... Менял версии библиотеки, отдельно подкидывал(в mods, ибо кастомные из libraries не грузятся =\)
Идеи?

З.Ы. Я уже перешел с одной либы на это из-за похожей ошибки
 
Краш-лог
[16:38:08] [WebSocketSelector-30/INFO] [STDOUT]: [org.slf4j.impl.SimpleLogger:write:318]: 2020-02-13 16:38:08.675 [TRACE] Connection lost timer started
[16:38:08] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
[16:38:08] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: at org.javacord.core.DiscordApiImpl.<init>(DiscordApiImpl.java:115)
[16:38:08] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: at org.javacord.core.DiscordApiBuilderDelegateImpl.login(DiscordApiBuilderDelegateImpl.java:168)
[16:38:08] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: at org.javacord.api.DiscordApiBuilder.login(DiscordApiBuilder.java:38)
[16:38:08] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: at ru.will0376.clienttweak.server.DiscordBot.logic(Discord.java:69)
[16:38:08] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: at ru.will0376.clienttweak.server.DiscordBot.run(Discord.java:55)
[16:38:08] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: at java.lang.Thread.run(Thread.java:748)
[16:38:08] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1061]: Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper
[16:38:08] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1061]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101)
[16:38:08] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1061]: at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[16:38:08] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1061]: at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[16:38:08] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1061]: ... 6 more
Сообщения
177
Лучшие ответы
7
Реакции
91
закидываю на сервер вместе с либами
Как именно?

отдельно подкидывал(в mods, ибо кастомные из libraries не грузятся =\)
Просто закинуть джарник библиотеки в mods или libraries недостаточно. Попробуй закидывать классы библиотеки в джарник мода
 
Сообщения
477
Лучшие ответы
9
Реакции
40
с флешкой на другой конец мира к серверу езжу.
Просто закинуть джарник библиотеки в mods или libraries недостаточно.
до этого было достаточно(напр мискуль драйвер) - а теперь нет? логики не вижу.

При этом грузится и либа вебсокета и сам дискорд(стоит проверка на классы.). Но дис-либа не запускается из-за
NCDFE...
 

tox1cozZ

aka Agravaine
Модератор
Сообщения
6,168
Лучшие ответы
348
Реакции
1,578
У тебя сервер откуда библиотеки грузит? Добавь ему в Classpath свои либы.
 
Сообщения
477
Лучшие ответы
9
Реакции
40
У тебя сервер откуда библиотеки грузит
Если я правильно всё понимаю - форджа сама либу из модс может добавить, но почему-то не видится именно этот класс, т.к. у меня javacord-3.0.5-shaded(т.е. жирный jar)
Добавь ему в Classpath свои либы.
Попробую, но мало верится, что сработает.
 
Сообщения
177
Лучшие ответы
7
Реакции
91
Каво

до этого было достаточно(напр мискуль драйвер) - а теперь нет?
Не вижу причин, по которым он должен работать, если его просто закинуть в папку.
На клиенте в лаунчере Сашка либы из libraries грузятся потому что каждый джарник добавлен как значение Class-Path в MANIFEST.MF джарника форжа, а в ванильном лаунчере зависимости вписаны в json-файл.
 
Сообщения
477
Лучшие ответы
9
Реакции
40
Не вижу причин, по которым он должен работать
потому-что:
FML has found a non-mod file jackson-databind-2.10.2.jar in your mods directory. It will now be injected into your classpath. This could severe stability issues, it should be removed if possible.
^ та самая либа, которую я отдельно закинул
 
Сообщения
477
Лучшие ответы
9
Реакции
40
Ооо етить его. Добавил вручную через -cp - стало работать :D
 

tox1cozZ

aka Agravaine
Модератор
Сообщения
6,168
Лучшие ответы
348
Реакции
1,578
Не вижу причин, по которым он должен работать, если его просто закинуть в папку.
Фордж все джарники из mods грузит в Classpath, так что либы можно кидать в mods. Но тут трабла: из-за порядка загрузки джарников может быть такая дичь как у ТС. Поэтому в манифесте мода нужно указывать что-то типа "Class-Path": my-lib.jar, чтобы сначала прогрузилась либа, а потом уже мод.
 

tox1cozZ

aka Agravaine
Модератор
Сообщения
6,168
Лучшие ответы
348
Реакции
1,578
Ну это ваще не комильфо ))
 
Сообщения
177
Лучшие ответы
7
Реакции
91
манифесте мода нужно указывать что-то типа "Class-Path": my-lib.jar
Ну хызы, это даёт жёсткую зависимость от названия файла. Удобнее один джарник с зависимостями распространять, чем мод и кучку зависимостей в разных джарниках. И проблем с загрузкой не будет.

Но если ТСу хочется, чтобы джарник мода не включал зависимости, можно в джарники зависимостей добавить классы с аннотацией Mod:
@Mod(modid = "jackson-databind", version = "2.10.0")
В таком случае можно в аннотации своего мода написать required-after:jackson-databind и мод не загрузится, пока не найдутся нужные зависимости.
 
Последнее редактирование:
Сообщения
177
Лучшие ответы
7
Реакции
91
Лол, чью ты лицензию нарушаешь этим?) Я бы зависимости в джарник мода запаковал и не парился бы.
 
Последнее редактирование:
Сообщения
477
Лучшие ответы
9
Реакции
40
Я бы зависимости в джарник мода
Глупо. ибо:
1)если это jar2jar - он распакует все зависимости в mods/1.12.2
2)если это банальное запаковывание всех классов в 1 jar - возможно будет так-же точно как и у меня, т.е. см п.1.
Тут только класспатч спасает
 
Сверху