carregando classe em tempo de execução em java ClassNotFoundException
Estou tendo problemas para chamar classes em tempo de execução em java Im basicamente fazendo um framework de plugin
Ele inicia abrindo o plugin / Plugins.cfg e analisa o teste em um mapa. Texto EX no arquivo cfg 1 = myplugin 2 = plugin2
(cada classe principal de plugins é: plugin. (nome do plugin) .main.class)
como você pode ver, ele carrega cada valor do mapa e trys para executar sua classe principal
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");
^ linha me dá o erro: java.lang.ClassNotFoundException: plugin.myplugin.main
Alguém sabe o que está errado aqui ?, ou qualquer sugestão, eu olhei para uma API para ele, mas foi confuso para mim e não tem documentação.