clase de carga en tiempo de ejecución en java ClassNotFoundException

Estoy teniendo problemas para llamar a clases en tiempo de ejecución en Java. Im básicamente haciendo un marco de complemento

comienza abriendo plugin / Plugins.cfg y analiza la prueba en un mapa. Texto EX en archivo cfg 1 = myplugin 2 = plugin2

(cada clase principal de plugins es: plugin. (nombre de plugin) .main.class)

Como puede ver, carga cada valor del mapa y trata de ejecutar su clase 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");

La línea ^ me da el error: java.lang.ClassNotFoundException: plugin.myplugin.main

¿Alguien sabe qué está mal aquí ?, o alguna sugerencia, he buscado una API pero me resultó confusa y carece de documentación.

Respuestas a la pregunta(1)

Su respuesta a la pregunta