NoClassDefFoundError в плагине

Версия Minecraft
1.7.10
Помогите разобраться с проблемой:
Взял код плагина с GitHub'a разработчика, компилю, обновляю на сервере.
При запуске проблем нет, но при взаимодействии с этим плагином сыплются ошибки NoClassDefFoundError на те классы, которые не были затронуты при выполнении функции onEnable. В jar эти классы есть, но они не попали в Classpath.
Так у меня было с несколькими плагинами (с модами таких проблем нет). Где-то это решилось изменением кода (алгоритма тут я не нашёл), где-то запихал в onEnable костыль - вручную инициализировал классы.
Такие проблемы стали заметны после обновления IntelliJ IDEA до версии 2019.3 (не уверен, просто в последнее время стал больше работать с плагинами и стал это замечать).
Как-то можно решить эту проблему?
 
Похоже на то, что плагины предназанчены для другой версии сервера.
Нет, это WorldGuard 6.1. Скомпилированный из CourseForge работает, а скомпилированный мною без изменений исходный код - нет
 
Дай ошибку. Причин может быть десяток
[Server thread/ERROR]: Could not pass event BlockIgniteEvent to WorldGuard v6.0.0-beta-03
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:338) ~[JavaPluginLoader$1.class:1.7.10-1614.58]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[RegisteredListener.class:1.7.10-1614.58]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:507) [SimplePluginManager.class:1.7.10-1614.58]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:492) [SimplePluginManager.class:1.7.10-1614.58]
at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.callBlockIgniteEvent(CraftEventFactory.java:865) [CraftEventFactory.class:1.7.10-1614.58]
at net.minecraft.block.BlockStaticLiquid.func_149674_a(BlockStaticLiquid.java:68) [ant.class:?]
at net.minecraft.world.WorldServer.func_147456_g(WorldServer.java:568) [mt.class:?]
at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:287) [mt.class:?]
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:963) [MinecraftServer.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:432) [lt.class:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:841) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:693) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
Caused by: java.lang.NoClassDefFoundError: com/sk89q/worldguard/bukkit/cause/Cause$Builder
at com.sk89q.worldguard.bukkit.cause.Cause.create(Cause.java:190) ~[?:?]
at com.sk89q.worldguard.bukkit.listener.EventAbstractionListener.onBlockIgnite(EventAbstractionListener.java:404) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_252]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_252]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_252]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_252]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:334) ~[JavaPluginLoader$1.class:1.7.10-1614.58]
... 12 more

Таких ошибок с десяток видов, 30 штук в секунду падают при заходе на сервер
 
7,099
324
1,510
Такая ошибка(NoClassDefFoundError) может быть в случае, если разные классы были скомпилированы разными версиями компилятора. Например, ты поменял какой-то класс, скомпилил его и закинул в jar, собранную автором
 
1,417
44
594
Ексепшен идет когда идет обращение к функционалу восьмой, которого нет под 7. Он может кидаться и при ПлеерДжоин евенте.

Тут, если ошибка не была вызвана версией компилятора, то я бы посмотрел либы, которые используются и где версия этого плагина используется. Некоторые новые версии плагинов не работают на старых версиях.
 
292
14
160
Последнее редактирование:
На проекте используется эта же версия плагина с некоторыми изменениями. Скомпилена она под Java 8.
Но есть странности и с другими плагинами. Например, делал один плагин, он нормально работал. Через 2 месяца (с этим я связываю обновление IDEA) открыл проект, сделал изменение - вылетают подобные ошибки, откатил назад - тоже самое. Т.е. билд одного и того же кода дал разные результаты + новый билд весит меньше. В этом плагине я инициализировал ненайденные классы при инициализации плагина - и всё заработало.

IDEA сносил вместе с настройками, локальный репозитарий очищал - ничего не изменилось
 
1,417
44
594
Как ето. При попытке загрузки класса, который был скомпилен с помощью JDK 8, в JVM 7 должен вылетать UnsupportedClassVersionError
Нет. Вот пример ошибки подгрузки классов, которые сбилжены под 8 и запускаются под 7:
Java:
org.bukkit.plugin.InvalidPluginException: java.lang.ClassNotFoundException: Failed to remap class ru.tenebrius.discordonline.Core
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:194)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:307)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:231)
    at org.bukkit.craftbukkit.v1_6_R3.CraftServer.loadPlugins(CraftServer.java:231)
    at cpw.mods.fml.common.event.FMLServerAboutToStartEvent.<init>(FMLServerAboutToStartEvent.java:29)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:527)
    at cpw.mods.fml.common.LoaderState.getEvent(LoaderState.java:84)
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:112)
    at cpw.mods.fml.common.Loader.serverAboutToStart(Loader.java:817)
    at cpw.mods.fml.common.FMLCommonHandler.handleServerAboutToStart(FMLCommonHandler.java:309)
    at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:222)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:630)
    at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Caused by: java.lang.ClassNotFoundException: Failed to remap class ru.tenebrius.discordonline.Core
    at org.bukkit.plugin.java.PluginClassLoader.remappedFindClass(PluginClassLoader.java:539)
    at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:456)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:234)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:430)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:278)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:183)
    ... 15 more
 
292
14
160
1,111
47
420
Такая ошибка(NoClassDefFoundError) может быть в случае, если разные классы были скомпилированы разными версиями компилятора. Например, ты поменял какой-то класс, скомпилил его и закинул в jar, собранную автором
Вставлю свои пять копеек.
Это не так работает. Там другая ошибОЧКА.

По сабжу ставлю сотку, что решение кроется в build.gradle или pom.xml ворлд гуарда. Ставлю сотку, что автор тянет какую то свою либу зависимостью а ТС собирает не фэт джарник.
 
По сабжу ставлю сотку, что решение кроется в build.gradle или pom.xml ворлд гуарда. Ставлю сотку, что автор тянет какую то свою либу зависимостью а ТС собирает не фэт джарник.
Возможно. Я только учусь.
Кто-то может помочь с данной проблемой? Разумеется, не бесплатно
 
Сверху