O meu conhecimento sobre isso é bem vasto, nunca precisei do mesmo, mas sei um pouco. Você precisa carregar o jar que tem a classe... segue o exemplo que fiz Teste (classe)
package com.outlook.devleeo.teste;
public class Teste
{
public static void metodo()
{
System.out.println("oi");
}
}
Classe para testar
package com.outlook.devleeo.teste;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
public class CLTeste
{
public static void main(String[] args) throws Exception
{
URLClassLoader loader = new URLClassLoader(new URL[] {new URL("http://devleeo.ga/utils/Teste.jar")});//URL DO JAR QUE CONTÉM A CLASSE Teste
Class<?> testeClass = loader.loadClass("com.outlook.devleeo.teste.Teste");//"caminho" da classe
Method testeMethod = testeClass.getDeclaredMethod("metodo");
testeMethod.invoke(null);
loader.close();
}
}
Resultado da execução
Isso só vai executar a classe, diferente do classloader, que vai carregar tudo.