Библиотека для плагина

Версия Minecraft
1.7.10
У меня есть скачанная библиотека JDA. Когда я запускаю сервер с плагином, пишет что плагин не может увидеть эту библиотеку. Куда мне нужно закинуть библиотеку что бы плагин её видел и корректно работал?
Ошибка в консоли:
java.lang.NoClassDefFoundError: net/dv8tion/jda/api/JDABuilder
 
Последнее редактирование:
1,074
72
372
Компиляция это просто компиляция. Библиотеки на этапе компиляции нужны лишь для вычисления сигнатур используемых полей и методов. Сам код библиотеки никуда не копируется. Упаковку библиотеки в jar'ник нужно настраивать отдельно (fat-jar). Либо добавлять библиотеку на сам сервер, чтобы не комплектовать ею каждый использующий плагин.
 
153
21
41
Если ядро гибрид, в mods кидай. Forge поругается, но всё равно подключит.
Что за костыли..

Добавь путь к либе в секции Class-Path, которая находится в манифесте, манифест лежит в core.jar!META-INF/MANIFEST.MF.
 
Я правильно понял, менять в манифесте, который находится в ядре сервера?
Если так, то вот манифест моего ядра и тут нет секции Class-Path:
MANIFEST:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: michael
Build-Jdk: 1.8.0_40-internal
Implementation-Vendor: Bukkit Team
Implementation-Title: CraftBukkit
Sealed: true
Specification-Version: unknown
Implementation-Version: git-Spigot-1.7.9-R0.2-208-ge0f2e95
Specification-Title: Bukkit
Specification-Vendor: Bukkit Team
Timestamp: 2014-11-13T05:31:35Z
Main-Class: org.bukkit.craftbukkit.Main

Name: net/bukkit/
Sealed: true

Name: com/bukkit/
Sealed: true

Name: org/bukkit/
Sealed: true
 
1,074
72
372
Что за костыли..
Самый таки-простой способ установки библиотек без правки чего-либо.

Если так, то вот манифест моего ядра и тут нет секции Class-Path:
Понятно, что нету. Всё jar'ник ядра упаковали.

Самым простым вариантом будет изменить скрипт запуска сервера примерно так:
Bash:
java -cp lib1.jar:lib2.jar:spigot.jar org.bukkit.craftbukkit.Main
 
153
21
41
Самый таки-простой способ установки библиотек без правки чего-либо.
Верно, но теряется порядок, который важен почти везде.

нет секции Class-Path
Так добавь её, почитай в интернете как работает манифест в общем.
 
429
41
108
Ты можешь скомпилить свой jar-плагин, и включить свои зависимости внутрь. Либо ручками, либо плагином (shadow jar насколько помню) Рабочий крестьянский способ. П.С ручками = открыть jar-пакет от к-го ты зависишь как обычный архив, и скопировать от туда ресурсы в свой jar. Да и вообще, дискорд бота (JDA либа для дс ботов) запускать как плагин для сервера, как по мне ПОЛНЫЙ БРЕД. Лучше оставь бота - как отдельный микросервис, оставив обратную связь через rcon (или как я, через костыльный самопис) или что-то типо того
 
Последнее редактирование:
Я хотел сделать вывод чата майна в дискорд и из дс в майн и ещё пару прикольных тем, и на сколько я знаю, через rcon получить чат майна нельзя.
На счёт закидывания папок из джарника либы в плагин, я пробовал, всё равно не видит.
UPD:
При компиле плагина моё ядро не видит мой плагин, но при запуске сервера через idea, всё работает.
 
Последнее редактирование:
Сверху