Ich versuche mit Hilfe eines URLClassLoaders eine bestimmte Klasse zu laden allerdings bekomme ich immer einen Fehler. Ich versuche eine Klasse aus einer anderen Jar zu laden dabei entsteht dann der Fehler.
Dies befindet sich in jar1
Ich lade die Class so:
Dies befindet sich in JAR2:
Dies ist der Code aus der Class die ich laden möchte:
Dies befindet sich in jar1
Code:
java.lang.NoClassDefFoundError: me/The_F4nAt1c/APC/Core/Modules/ModuleMain
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_181]
at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_181]
at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:1.8.0_181]
at java.net.URLClassLoader.defineClass(Unknown Source) ~[?:1.8.0_181]
at java.net.URLClassLoader.access$100(Unknown Source) ~[?:1.8.0_181]
at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.8.0_181]
at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.8.0_181]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_181]
at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_181]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_181]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_181]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_181]
at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_181]
at me.The_F4nAt1c.APC.Core.Modules.ModuleValidator.precheck(ModuleValidator.java:47) ~[?:?]
at me.The_F4nAt1c.APC.Core.Modules.ModuleLoader.loadModule(ModuleLoader.java:37) ~[?:?]
at me.The_F4nAt1c.APC.Core.Modules.ModuleLoader.<clinit>(ModuleLoader.java:18) ~[?:?]
at me.The_F4nAt1c.APC.Main.Initialization.OnLoad.<clinit>(OnLoad.java:39) ~[?:?]
at me.The_F4nAt1c.APC.Main.APCore.onLoad(APCore.java:33) ~[?:?]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.loadPlugins(CraftServer.java:310) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.DedicatedServer.init(DedicatedServer.java:205) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:545) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_181]
Caused by: java.lang.ClassNotFoundException: me.The_F4nAt1c.APC.Core.Modules.ModuleMain
at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_181]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_181]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_181]
Ich lade die Class so:
Java:
ModuleDescription des = new ModuleDescription(f);
this.description = des;
f.delete();
URLClassLoader mainLoader = new URLClassLoader(new URL[]{new URL("file:" + path)});
//CHECK MAIN CLASS
System.out.println(des.getMain());
ModuleMain mainClass = (ModuleMain) Class.forName(des.getMain(), true, mainLoader).newInstance();
Dies befindet sich in JAR2:
Dies ist der Code aus der Class die ich laden möchte:
Java:
package de.test.module;
import me.The_F4nAt1c.APC.Core.Modules.ModuleMain;
import org.bukkit.Bukkit;
public class Mod extends ModuleMain {
@Override
public void onBeforePluginValidate() {
Bukkit.getConsoleSender().sendMessage("§6TEST MODULE VALIDATION");
}
}
Zuletzt bearbeitet: