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.

questionAnswers(1)

yourAnswerToTheQuestion