Laden der Klasse zur Laufzeit in Java ClassNotFoundException
Ich habe Probleme beim Aufrufen von Klassen zur Laufzeit in Java. Im Grunde genommen erstelle ich ein Plugin-Framework
Es beginnt mit dem Öffnen von plugin / Plugins.cfg und parst den Test in eine Map. EX-Text in cfg-Datei 1 = myplugin 2 = plugin2
(Jede Plugins-Hauptklasse ist: plugin. (Plugin-Name) .main.class)
Wie Sie sehen, lädt es jeden Wert von der Karte und versucht, seine Hauptklasse auszuführen
public static void loadPlugins()
{
int x = hackers.core.startup.InitializeGame.map.size();
for (int i = 1; i<=x;i++)
{
String className = hackers.core.startup.InitializeGame.map.get(i + "");
File file = new File(System.getProperty("user.dir") + File.separator + "plugins" + File.separator + className);
URL url = null;
try {
url = file.toURI().toURL();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
URL[] urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);
try {
Class cls = cl.loadClass("plugin." + className + ".main");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(className);
}
}
Class cls = cl.loadClass("plugin." + className + ".main");
^ Zeile gibt mir den Fehler: java.lang.ClassNotFoundException: plugin.myplugin.main
Wer weiß, was hier falsch ist? Oder irgendwelche Vorschläge, ich habe mir eine API dafür angesehen, aber es war für mich verwirrend und es fehlt Dokumentation.